标题: 请教大家合泰触摸单片机定时器设置问题 [打印本页]

作者: 飞云    时间: 2019-8-9 14:47
标题: 请教大家合泰触摸单片机定时器设置问题
程序如下,请问这个初始化函数哪里出了问题?我是想设置1us中断的,结果变成20us才中断一次

单片机用的是BS66F360


void ctm0_Init(unsigned int us)                /ctm0初始化
{        
        /***********************设定定时器0的自加计数器每2us加1***************************/
        _ctm0c0=0b00100000;        //设置定时器的时钟源【fH16分频,即1MHz】 //系统时钟选择16MHz
        _ctm0c1=0b11000001;              //设定定时器0工作模式为:定时/计数模式,比较器A匹配产生中断
        
        /*************************定时器0每1us产生一次中断*****************************/
        _ctm0al=0x01;          //设置定时器0计数匹配值,数据手册中说明:写寄存器先写低位,读寄存器先读高位
        _ctm0ah=0x00;
         
        _ctm0af=0;                  //清零tm0中断标志位
        _ctm0ae=1;                  //使能tm0中断
        
        _mf0f=0;                  
        _mf0e=1;                                 //定时器0中断属于MFO中断
        
        _ct0on=1;
//        _t0on=1;                 //定时器0开始计时
}

void isr_tm0()
{
        _ctm0af=0;
        CLR_WDT();
        
        led_cnt++;
        if(led_cnt==50000)
        {
                led_cnt=0;
                led=~led;        
        }        
}



作者: Y_G_G    时间: 2019-8-9 17:28
在这,你要是问8051的话,会有很多人帮你的,你问合泰,估计用过的都没有几个,烧录器就四百多块钱,相比11块的STC烧录器,没的比呀
1,在烧录的界面看一下有没有系统时钟的选择
2,合泰的指令是4周期的,8051的是12周期的,注意区别一下
3,不要用50000那么大的数,用char型,代码会多几行,但效率会好很多
4,台系的单片机,能用汇编就用汇编,它们不比8051或者AVR之类,编译出错可能性会高很多


5,最重要的,我的话只能当个参考而已,很久没有用合泰了

作者: TTT96    时间: 2019-8-9 18:45
不会,不好意思

作者: ccdmcu    时间: 2019-8-9 20:08
不知道你这型号的单片机怎么规定的,仔细看看规格书,总中断打开没?0185之类的我记得中断函数要打开比较器a,或p使能位,开定时器,开总中断,中断函数是写地址的。
作者: 叶樱枫    时间: 2019-9-27 16:05
        _ctmc0 = 0b00100000;  //总线时钟16M,16分频,定时器停止
        _ctmc1 = 0b11000001; //定时/计数器模式,ctm比较器A匹配清除计数器
       
        _ctmal = 0xe8;//1000,定0.001S进一次中断,先写低再写高
        _ctmah = 0x03;
       
        _cton = 1;    //启动定时器
        _ctmae = 1;   //定时器ctm比较器A匹配中断请求
        _mf1e = 1;          //允许多功能中断1
楼主这是我写的HT66F019定时器初始化,你可以参考一下




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1