| 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 所有产品 | 留言 | 论坛 | 购买指南 | 网络协议 | 驱动设计 | 
您现在的位置: 21嵌入式控制研究室 >> DSP >> DSP例程 >> C2000例程 >> 文章正文 用户登录 新用户注册
TMS320F243的编程例子           ★★★★★ 【字体:
TMS320F243的编程例子
作者:佚名    文章来源:本站原创    点击数:    更新时间:2005-11-29
/*****************************************************************************/
/* Testprogram for digital I/O on Port D */
/* running on TMS320F243 EVA-Board, PLL is fixed to multiply by 4 */
/* external clock is 5MHz, internal then 20Mhz */
/* date : 07/11/2000 , (C) Frank.Bormann@fh-zwickau.de */
/*****************************************************************************/
/* digital I/O on Port D0...D7 */
/* 8 LED's connected to Port D0...D7 ; LED-on : 1 LED off : 0 */
/* 'Knight-rider' : 1 of 8 LEDs switched on, then go from left to right */
/* software delay loop */
/* program-name : LED243C.c / project : F243LED */
/*****************************************************************************/
#include "regs243.h"
/************* SETUP for the OCRA - Register ***************************/
#define OCRA15 0 /* 0 : IOPB7 1 : TCLKIN */
#define OCRA14 0 /* 0 : IOPB6 1 : TDIR */
#define OCRA13 0 /* 0 : IOPB5 1 : T2PWM */
#define OCRA12 0 /* 0 : IOPB4 1 : T1PWM */
#define OCRA11 0 /* 0 : IOPB3 1 : PWM6 */
#define OCRA10 0 /* 0 : IOPB2 1 : PWM5 */
#define OCRA9 0 /* 0 : IOPB1 1 : PWM4 */
#define OCRA8 0 /* 0 : IOPB0 1 : PWM3 */
#define OCRA7 0 /* 0 : IOPA7 1 : PWM2 */
#define OCRA6 0 /* 0 : IOPA6 1 : PWM1 */
#define OCRA5 0 /* 0 : IOPA5 1 : CAP3 */
#define OCRA4 0 /* 0 : IOPA4 1 : CAP2/QEP2 */
#define OCRA3 0 /* 0 : IOPA3 1 : CAP1/QEP1 */
#define OCRA2 0 /* 0 : IOPA2 1 : XINT1 */
#define OCRA1 0 /* 0 : IOPA1 1 : SCIRXD */
#define OCRA0 0 /* 0 : IOPA0 1 : SCITXD */
/*****************************************************************************/
/************* SETUP for the OCRB - Register ***************************/
#define OCRB9 0 /* 0 : IOPD1 1 : XINT2/EXTSOC */
#define OCRB8 1 /* 0 : CKLKOUT 1 : IOPD0 */
#define OCRB7 0 /* 0 : IOPC7 1 : CANRX */
#define OCRB6 0 /* 0 : IOPC6 1 : CANTX */
#define OCRB5 0 /* 0 : IOPC5 1 : SPISTE */
#define OCRB4 0 /* 0 : IOPC4 1 : SPICLK */
#define OCRB3 0 /* 0 : IOPC3 1 : SPISOMI */
#define OCRB2 0 /* 0 : IOPC2 1 : SPISIMO */
#define OCRB1 1 /* 0 : BIO 1 : IOPC1 */
#define OCRB0 1 /* 0 : XF 1 : IOPC0 */
/*****************************************************************************/
/************* SETUP for the WDCR - Register ***************************/
#define WDDIS 1 /* 0 : Watchdog enabled 1: disabled */
#define WDCHK2 1 /* 0 : System reset 1: Normal OP */
#define WDCHK1 0 /* 0 : Normal Oper. 1: sys reset */
#define WDCHK0 1 /* 0 : System reset 1: Normal OP */
#define WDSP 7 /* Watchdog prescaler 7 : div 64 */
/*****************************************************************************/
/************* SETUP for the SCSR - Register ***************************/
#define CLKSRC 0 /* 0 : intern(20MHz) */
#define LPM 0 /* 0 : Low power mode 0 if idle */
#define ILLADR 1 /* 1 : clear illegal address bit */
/*****************************************************************************/
/************* SETUP for the WSGR - Register ***************************/
#define BVIS 0 /* 10-9 : 00 Bus visibility OFF */
#define ISWS 0 /* 8 -6 : 000 0 Waitstates for IO */
#define DSWS 0 /* 5 -3 : 000 0 Waitstates data */
#define PSWS 0 /* 2 -0 : 000 0 Waitstaes code */
/*****************************************************************************/
unsigned int LED[8]={0xFF01,0xFF02,0xFF04,0xFF08,0xFF10,0xFF20,0xFF40,0xFF80};
/* lookup table for Port D */
unsigned char n;
extern _out_wsgr();
void wait(void)
{
unsigned int i;
for(i=0;i<65000;i++);
}
void c_dummy1(void)
{
while(1); /* Dummy ISR used to trap spurious interrupts */
}
void main(void)
{
asm (" setc INTM"); /* Disable all interrupts */
asm (" clrc SXM"); /* Clear Sign Extension Mode bit */
asm (" clrc OVM"); /* Reset Overflow Mode bit */
asm (" clrc CNF"); /* Configure block B0 to data mem. */
out_wsgr((BVIS<<9)+(ISWS<<6)+(DSWS<<3)+PSWS);
/* external Function to access WSGR */
WDCR=((WDDIS<<6)+(WDCHK2<<5)+(WDCHK1<<4)+(WDCHK0<<3)+WDSP);
/* Initialize Watchdog-timer */
SCSR = ((CLKSRC<<14)+(LPM<<12)+ILLADR); /* Initialize SCSR */
OCRB = ((OCRB9<<9)+(OCRB8<<8)+
(OCRB7<<7)+(OCRB6<<6)+(OCRB5<<5)+(OCRB4<<4)+
(OCRB3<<3)+(OCRB2<<2)+(OCRB1<<1)+OCRB0);
/* Initialize output control register B */
OCRA = ((OCRA15<<15)+(OCRA14<<14)+(OCRA13<<13)+(OCRA12<<12)+
(OCRA11<<11)+(OCRA10<<10)+(OCRA9<<9)+(OCRA8<<8)+
(OCRA7<<7)+(OCRA6<<6)+(OCRA5<<5)+(OCRA4<<4)+
(OCRA3<<3)+(OCRA2<<2)+(OCRA1<<1)+OCRA0);
/* Initialize output control register A */
while(1){
for(n=0;n<14;n++){
if(n<7) PDDATDIR = LED[n];
else PDDATDIR=LED[14-n];
wait();
}
}
}
文章录入:fengfeiyi    责任编辑:fengfeiyi 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • 数字电视中DSP技术的应用

  • 以DSP为核心的无线定位系统的…

  • 虚拟平台的汽车驱动模拟

  • 基于TLC2274新的电流采样方案…

  • 高性能信号处理器件的电源定…

  • 基子DSP的高动态GPS接收机关…

  • 综观DSP新兴市场及未来走向

  • TS101S型DSP与PCI总线的简易…

  • ARM/DSP双核系统的通信接口设…

  • 不同阶数的FIR数字滤波器的D…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)