日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> 技術中心 >> 單片機入門 >> 單片機編程小問題總結

單片機編程小問題總結

關鍵字:單片機 編程 作者:admin 來源:不詳 發(fā)布時間:2018-05-19  瀏覽:9

1、指向code區(qū)數(shù)組的指針也要加 code 關鍵字聲明。

比如 unsigned char code arr[30]; 數(shù)組,要用指針指向它,要把指針也聲明成 unsigned charcode*p;

后來使用發(fā)現(xiàn)其它很多地方使用是不需要這樣聲明的,只要 unsigned char *p;就行了,但是清楚地記得那次確實是要加 code 關鍵字聲明才可以的。

 

2、在51里面,位變量貌似是有限的。

如果要用一個布爾型作為標識變量,為了節(jié)省控件可以用 bit 型變量,但是在DRS1000項目中遇到過一次用 bit 型變量出錯,改為 unsigned char 型就OK了,那時定義的變量已經(jīng)很多了,可能是把可以用bit尋址的存儲區(qū)都用光了吧。

 

3、用機械開關觸發(fā)INT中斷時:

由于機械開關會震動,產(chǎn)生的電壓會有毛刺,這些毛刺會多次觸發(fā)中斷。會造成多次觸發(fā)的因素有兩點:

(1 )開關按下時的震動。第一次低電平到來時會進入中斷處理程序,之后就算這些震動在中斷處理程序執(zhí)行的過程中產(chǎn)生,即使進入中斷處理程序后關掉了總中斷,這些毛刺仍然會使中斷標志位置位,會在結束中斷處理程序結束后再次馬上觸發(fā)中斷處理程序。

(2 )開關釋放時的震動。在第一次高電平到來時會退出中斷處理程序,之后的毛刺會再次進入中斷處理程序。

解決辦法:

在中斷處理程序的最后加一段低電平等待代碼,等待低電平結束再延時5ms(為了消除開關釋放時毛刺的干擾),5ms延時結束后再清除中斷標志位(在中斷處理程序執(zhí)行的過程中可能已經(jīng)再次觸發(fā)了中斷標志位)。代碼如下:

void int0() interrupt 0

{

/*Do something*/

while(rollRA==0);//等待低電平結束

delay5(1);//等待按鍵釋放的毛刺結束

IE0=0; //清除中斷標志位,以防再次進入中斷

}

 

4、對于15系列單片機,在使用串口時必須要指定AUXR寄存器的值,否則程序無法正常運行。

這個情況遇到過很多次,15系列單片機只要使用到串口就一定要知名AUXR寄存器的值,不像12系列那樣可以把這個寄存器忽略。

在使用15系列單片機時養(yǎng)成了一個習慣:main 函數(shù)的第一句讓 AUXR=0; ,后面串口在根據(jù)需要對其進行初始化。

編輯:admin  最后修改時間:2018-05-19

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

凤翔县| 丹棱县| 阳东县| 定襄县| 鹰潭市| 长葛市| 双流县| 邵东县| 南汇区| 南汇区| 稻城县| 清流县| 吴堡县| 浏阳市| 榆社县| 华坪县| 包头市| 治县。| 克拉玛依市| 沅江市| 交城县| 上犹县| 许昌县| 郁南县| 九龙县| 那曲县| 微博| 武安市| 含山县| 永泰县| 恩施市| 小金县| 江安县| 龙口市| 古丈县| 梅河口市| 涡阳县| 台州市| 灵石县| 视频| 邵阳市|