共2条
1/1 1 跳转至页

问
我使用的是zlg的2104学习板,我的程序中使用了定时器1和外部中断1来产生两个中断,程序不能正确执行,一执行程序就又跑回main函数开始处,请问这是为什么,我查看memory发现中断使能没有写到使能寄存器中,我的main函数如下:
int main(void)
{
PINSEL0 = 0x20000000;
PINSEL1 = 0x00000000;
IODIR = LEDCON1|LEDCON2|LEDCON3;
T1PR = 26; //设置定时器分频
T1MCR = 0x03; //匹配通道0匹配中断并复位T1TC.
T1MR0 = 110592; //比较值.
T1TCR = 0x03; //启动并复位T1TC.
T1TCR = 0x01;
T1IR = 1;
VICIntSelect = 0x00000000;
VICVectCntl0 = 0x20|14;
VICVectAddr0 = (int)IRQ_Time1;
VICVectCntl1 = 0x20|15;
VICVectAddr1 = (int)IRQ_Eint1;
VICIntEnable = 0x00008020;
EXTINT = 0x07;
while(1);
return(0);
}
中断例程函数应该没有问题,我拷贝的是例子程序中的例程函数.
多谢各位大虾指教!!!
答 1: 从MEMORY中读出的数据是不可靠的。建议:是不是中断嵌套引起的问题。 答 2: REVICVectCntl0 = 0x20|14; 错了吧 应该是 =0x20|4; ???试试
int main(void)
{
PINSEL0 = 0x20000000;
PINSEL1 = 0x00000000;
IODIR = LEDCON1|LEDCON2|LEDCON3;
T1PR = 26; //设置定时器分频
T1MCR = 0x03; //匹配通道0匹配中断并复位T1TC.
T1MR0 = 110592; //比较值.
T1TCR = 0x03; //启动并复位T1TC.
T1TCR = 0x01;
T1IR = 1;
VICIntSelect = 0x00000000;
VICVectCntl0 = 0x20|14;
VICVectAddr0 = (int)IRQ_Time1;
VICVectCntl1 = 0x20|15;
VICVectAddr1 = (int)IRQ_Eint1;
VICIntEnable = 0x00008020;
EXTINT = 0x07;
while(1);
return(0);
}
中断例程函数应该没有问题,我拷贝的是例子程序中的例程函数.
多谢各位大虾指教!!!
答 1: 从MEMORY中读出的数据是不可靠的。建议:是不是中断嵌套引起的问题。 答 2: REVICVectCntl0 = 0x20|14; 错了吧 应该是 =0x20|4; ???试试
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 | |
【我踩过的那些坑】杜绑线问题被打赏50分 | |
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 | |
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 |