我在查阅dsp 28335资料的时候,它的io口是可以单独的操作,见附图1;dsp--c5517的通用io口可以单独操作吗?
若是可以,如何单独操作?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
老师 您说的是这样的吗
#define LED1_ON IODATAOUT1=(IODATAOUT1|0x0200)
#define LED1_OFF IODATAOUT1=(IODATAOUT1&0xFDFF)
#define LED2_ON IODATAOUT1=(IODATAOUT1|0x0100)
#define LED2_OFF IODATAOUT1=(IODATAOUT1&0xFEFF)
#define TEST_ON IODATAOUT1=(IODATAOUT1|0x0010)
#define TEST_OFF IODATAOUT1=(IODATAOUT1&0xFFEF)
我现在测试程序
//定时器中断
interrupt void gptIsr() //定时器0中断
{
使用 TEST_ON TEST_OFF 产生10ms的方波
}
//主函数
while(1)
{
LED1_OFF ;LED2_OFF ;
}
若是主函数LED1_OFF ;LED2_OFF ;这个屏蔽。 TEST 就是一个标准的10ms为周期方波信号。
但是若是加了LED1_OFF ;LED2_OFF ;就不是标准的方波信号了。见附图2.
我个人分析是由于在处理LED1_OFF ;LED2_OFF ;这个语句的时候 突然来定时器中断了,而此时IODATAOUT1这个寄存器的值被挂起,而中断中TEST_ON --TEST_OFF 又使用到IODATAOUT1这个寄存器,与主函数中的IODATAOUT1寄存器冲突导致的。
老师不知道我这样的分析是否正确?