Thread 中讨论的其他器件:C2000WARE
工具与软件:
大家好!
我使用的是 TI F280049CPZS 100引脚 MCU、并且为计时器和 LED 闪烁编写了一个简单代码、现在运转良好。 但是、当我为 F280049CPMS 64引脚 MCU 构建相同的代码时、这是无法正常工作的。 我使用 C2000Ware 开发代码、我使用内部振荡器进行时钟频率。
以下是我的代码。
如果我走错了路、请引导我。
谢谢你。
//包含的文件
//
#include "F28x_Project.h"
#include "driverlib.h"
#include "device.h"
//
//定义传递到 SysCtl_setClock()。 将按如下方式配置时钟:
// PLLSYSCLK = 10MHz (INT_OSC1)* 20 (IMULT)* 1 (FMULT)/2 (PLLCLK_BY_2)
//
#define DEVICE_setCLOCK_INTOSC (SYSCTL_OSCSRC_OSC1 | SYSCTL_IMULT (20)|\
SYSCTL_FMULT_NONE | SYSCTL_SYSDIV (2)|\
SYSCTL_PLL_ENABLE)
#define LED1_GPIO 34 //直接使用 GPIO 编号
#define DEVICE_SYSCLK_FREQ 100000000 //定义系统时钟频率(本例中为100 MHz)
INT count = 0;
void initCPUTimers (void);
void configCPUTimer (uint32_t cpuTimer、float freq、float period);
__interrupt void cpuTimer0ISR (void);
void GPIO_init (void);
void main (void)
{
device_init();
device_initGPIO();
颜色;
Interrupt_initModule();
interrupt_initVectorTable();
GPIO_init ();
interrupt_register (INT_TIMER0、&cpuTimer0ISR);
initCPUTimers();
SysCtl_setClock (DEVICE_setClock_INTOSC);
configCPUTimer (CPUTIMER0_BASE、DEVICE_SYSCLK_FREQ、500000);
INTERRUPT_ENABLE (INT_TIMER0);
interrupt_clearACKGroup (interrupt_ACK_group9);
EINT;
ERTM;
CPUTimer_startTimer (CPUTIMER0_BASE);
while (1)
{
GPIO_togglePin (LED1_GPIO);
DELAY_US (100000);
}
}
void initCPUTimers (void)
{
CPUTimer_setPeriod (CPUTIMER0_BASE、0xFFFFFFFF);
CPUTimer_setPreScale (CPUTIMER0_BASE、0);
CPUTimer_stopTimer (CPUTIMER0_BASE);
CPUTimer_reloadTimerCounter (CPUTIMER0_BASE);
}
void configCPUTimer (uint32_t cpuTimer、float freq、float period)
{
uint32_t temp;
TEMP =(uint32_t)(freq / 1000000 *周期);
CPUTimer_setPeriod (cpuTimer、temp);
CPUTimer_setPreCalibrate (cpuTimer、0);
CPUTimer_stopTimer (cpuTimer);
CPUTimer_reloadTimerCounter (cpuTimer);
CPUTimer_setEmulationMode (cpuTimer、CPUTIMER_EMULATIONMODE_STOPAFTERNEXTDECREMENT);
CPUTimer_enableInterrupt (cpuTimer);
}
__interrupt void cpuTimer0ISR (void)
{
count++;
如果(计数>= 1000)
{
计数= 0;
}
interrupt_clearACKGroup (INTERRUPT_ACK_GROUP1);
}
void GPIO_init (void)
{
EALLOW;
GPIO_setDirectionMode (LED1_GPIO、GPIO_DIR_MODE_OUT);
GPIO_setMasterCore (LED1_GPIO、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_34_GPIO34);
GPIO_setQualificationMode (LED1_GPIO、GPIO_QUAL_ASYNC);
EDIS;
}
