欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6595|回復: 0
收起左側

都是main()函數的循環執行惹的禍題

[復制鏈接]
ID:50962 發表于 2013-6-17 16:00 | 顯示全部樓層 |閱讀模式
都是main()函數的循環執行惹的禍
         就在今天好好的一個程序,語發基本上都沒有任何錯誤,和官方的資料都對照了也沒有什么問題但是原本好好的程序就是定時器打不開了。為什么呢?今天又大概6個小時的時間都浪費在這個不起眼的自己曾經不知道也沒注意的問題上。
         首先我跟大家說下我的一下代碼需要實現的功能,非常簡單就是在定時其溢出也就是進入中斷之后單片機通過串口給我的上位機發送一個驗證字符H55,但是調試了一個下午就是沒法實現。大家先看看以下程序!
void main(void)
{
         main_init();      
}
//-----------------主函數初始化------------------------------------
void main_init(void)
{
         EA=1;//開總中斷
         uart_init();
         timer0_init();
}
//-------------------串行口中斷--------------------------
void uart_rec() interrupt 4
{
         if(RI)
         {
                   RI=0;
                   Uart_RD=SBUF;
                   uart_send(Uart_RD);
         }
}
//------------------定時器0初始化函數----------------------------
void timer0_init(void)
{
         EA=1;
         ET0  =1    ;
         TR0  =1    ;
         AUXR|=0X80;
         TMOD|=0x01;
         TH0   =0x00;
         TL0    =0x00;   
}
//------------------定時器0中斷服務函數----------------------------
void timer0() interrupt 1
{
         TH0  =0xff;
         TL0   =0x00;
         uart_send(0x55);     
}
相信大家程序也看完了,我敢保證單片機C編程基礎比較差的肯定找不這問題的所在!其實整個程序的問題主要是出在主函數沒有一個while(1);死循環而程序一直循環執行主函數循環一次的時間小于定時器的定時時間00~65536,故而每次循環都會給定時器的高低八位重新初始化賦值h00、h00,所以導致定時器一直無法溢出去執行定時器中斷函數。相信我說道這里單價應該明白怎么回事了吧!
以本人所犯之錯,希望大家引以為戒!!!

評分

參與人數 2黑幣 +2 收起 理由
dfdfuhuh + 1 很給力!
ANDATE + 1 贊一個!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表