主题中讨论的其他器件: C2000WARE
工具/软件:Code Composer Studio
大家好、
我有一个用于 TMS320F280049微控制器的定制板、原理图附在这个线程上。 我将示例项目与支持新微控制器的 C200ware 结合使用。 头文件看起来是与开发板或其他器件一起使用的。
我已经根据"F28004x_dev_user_guide.pdf"尝试了中断项目 LED 项目。 但是、这些工程会编译和加载、但调试器不会显示任何内容。 例如、定时器(计数器)不会递增。 是否有任何人拥有一个空白项目或具有所有通用器件头文件的 PWM 或计时器项目。 有什么想法吗?
//########################################################################################################################
//
//文件:timer_ex1_cputimers.c
//
//标题:CPU 定时器示例
//
//! addtogroup bitfield_example_list
//!
CPU 定时器
//!
//! 此示例配置 CPU Timer0、1和2并递增
//! 每次定时器发出中断时计数器。
//!
//! b 外部连接\n
//! -无
//!
//! b 监视\b 变量\n
//! - CpuTimer0.InterruptCount
//! - CpuTimer1.InterruptCount
//! - CpuTimer2.InterruptCount
//!
//
//########################################################################################################################
//$TI 发行版:F28004x 支持库 v1.03.00.00 $
//$Release Date:Thu Deco 7 18:46:47 CST 2017 $
//版权所有:
//版权所有(C) 2017 Texas Instruments Incorporated - http://www.ti.com/
//
//以源代码和二进制形式重新分发和使用,有无
//如果满足以下条件,则允许进行修改
//满足:
//
//重新分发源代码必须保留上述版权
//注意、此条件列表和以下免责声明。
//
//二进制形式的重新分发必须复制上述版权
//注意、中的条件列表和以下免责声明
//随提供的文档和/或其他材料
//分布。
//
//德州仪器公司的名称和的名称都不是
//其贡献者可用于认可或推广衍生产品
//未经特定的事先书面许可,从该软件下载。
//
//本软件由版权所有者和作者提供
//“原样”以及任何明示或暗示的保证,包括但不包括
//限于对适销性和适用性的暗示保证
//一个特定的目的是免责的。 在任何情况下、版权均不得
//所有者或贡献者应对任何直接、间接、偶然、
//特殊、典型或必然的损害(包括但不包括)
//仅限于采购替代货物或服务;
//数据或利润;或业务中断)
//责任理论,无论是合同责任、严格责任还是侵权行为
//(包括疏忽或其他)以任何方式因使用而产生
//此软件,即使已被告知可能会发生此类损坏。
//$
//########################################################################################################################
//
//包含的文件
//
#include "F28x_Project.h"
//
//函数原型
//
_interrupt void cpuTimer0ISR (void);
_interrupt void cpuTimer1ISR (void);
_interrupt void cpuTimer2ISR (void);
//
//主函
//
void main (void)
{
//
//初始化设备时钟和外设
//
InitSysCtrl();
//
//初始化 GPIO
//
InitGpio();
//GPIO_SetupPinMux (31U、GPIO_MUX_CPU1、0);
//GPIO_SetupPinOptions (31U、GPIO_OUTPUT、GPIO_PushPull);
//
//禁用 CPU 中断
//
Dint;
//
//将 PIE 控制寄存器初始化为默认状态。
//默认状态为禁用所有 PIE 中断和标志
//被清除。
//
InitPieCtrl();
//
//禁用 CPU 中断并清除所有 CPU 中断标志
//
IER = 0x0000;
IFR = 0x0000;
//
//使用指向 shell 中断的指针初始化 PIE 矢量表
//服务例程(ISR)
//
InitPieVectTable();
//
//映射 ISR 函数
//
EALLOW;
PieVectTable.TIMER0_INT =&cpuTimer0ISR;
PieVectTable.Timer1_INT =&cpuTimer1ISR;
PieVectTable.TIMER2_INT =&cpuTimer2ISR;
EDIS;
//
//初始化设备外设。 对于本示例、仅初始化
// CPU 定时器。
//
InitCpuTimer();
//
//将 CPU 定时器0、1和2配置为每秒中断一次:
// 100MHz CPU 频率,1秒周期(以 μ 秒为单位)
//
ConfigCpuTimer (&CpuTimer0、100、1000000);
ConfigCpuTimer (&CpuTimer1、100、1000000);
ConfigCpuTimer (&CpuTimer2、100、1000000);
//
//为了确保精确的时序,请使用只写指令来写入
//整个寄存器。 因此、如果任何配置位发生更改
//在 ConfigCpuTimer 和 InitCpuTimers 中,还必须进行以下设置
//更新。
//
CpuTimer0Regs.TCR.ALL = 0x4000;
CpuTimer1Regs.TCR.ALL = 0x4000;
CpuTimer2Regs.TCR.ALL = 0x4000;
//
//启用连接到 CPU 定时器0、CPU INT13的 CPU INT1
//连接到 CPU 定时器1,CPU int 14连接
//到 CPU 定时器2
//
IER |= M_INT1;
IER |= M_INT13;
IER |= M_INT14;
//
//在 PIE 中启用 TINT0:组1中断7
//
PieCtrlRegs.PIEIER1.bit.INTx7=1;
//
//启用全局中断和更高优先级的实时调试事件
//
EINT;
ERTM;
//
//空闲循环。 只需坐下来循环(可选)。
//
while (1)
{
}
}
//
// cpuTimer0ISR -具有中断计数器的 CPU Timer0 ISR
//
_interrupt void cpuTimer0ISR (void)
{
CpuTimer0.InterruptCount++;
//
//确认此中断以从组1接收更多中断
//
PieCtrlRegs.PIEACX.ALL = PIEACK_Group1;
}
//
// cpuTimer1ISR -具有中断计数器的 CPU Timer1 ISR
//
_interrupt void cpuTimer1ISR (void)
{
//
// CPU 确认中断
//
CpuTimer1.InterruptCount++;
}
//
//带有中断计数器的 cpuTimer2ISR CPU Timer2 ISR
//
_interrupt void cpuTimer2ISR (void)
{
//
// CPU 确认中断
//
CpuTimer2.InterruptCount++;
}
//
//文件结束
//