编写了一个定时器程序,检查了很多遍还是进不了中断函数里面,求高手帮忙检查
PICC18编译器
#include <htc.h>
#define uchar unsigned char
#define uint unsigned int
uint counter=0;//计数
void init(void)
{
INTCON=0xC0; //总中断使能
INTCON2=0;
INTCON3=0;
PIE1=0x03; //使能定时器1 2中断
PIE2=0;
IPR1=0x23;
TMR1L=(65536-6250)%256; //定时器1高位装数
TMR1H=(65536-6250)/256; //定时器1低位装数
T1CON=0x31; //1:8分频,启动定时器1
T2CON=0x04; //打开定时器2,不分频
PR2=43; //模拟115200波特率
}
void main(void)
{
uchar k=0;
init();
while(1)
{
/* if(TMR1IE&&TMR1IF)
{
TMR1IF=0;
TMR1L=(65536-6250)%256;
TMR1H=(65536-6250)/256;
counter++;
}*/
if(counter>=30)//每0.3秒显示一次
{
counter=0;
picture_display(k); //显示图片子函数
k++;
if(k>=85)
k=0;
}
}
}
void interrupt serve(void) //中断服务
{
if(TMR1IE&&TMR1IF)
{
TMR1IF=0;
TMR1L=(65536-6250)%256;
TMR1H=(65536-6250)/256; //10ms时基
counter++;
}
}
程序的基本内容如上,程序目的是每隔0.3秒更新一次图片,这样图片无法显示,如果把主函数里的/**/去掉使用查询法,图片能正常显示
试过各种情况觉得觉得问题就是进不去中断函数里,求高手指点!!!
如果有18F4520的定时器PICC18编译器下的例子分享一个也感激不尽 |