- 202104-2351單片機幾種精確延時實現(xiàn)延時通常有兩種方法:一種是硬件延時,要用到定時器/計數(shù)器,這種方法可以提高CPU的工作效率,也能做到精確延時;另一種是軟件延時,這種方法主要采用循環(huán)體進行。 今天主要介紹軟件延時,關于硬件延時,之后定時器部分再做詳細說明。 首...
- 202104-23AVR 的精確延時程序C語言中,想使用精確的延時程序并不容易。IAR 中有這樣的一個函數(shù) __delay_cycles(),該函數(shù)在頭文件intrinsics.h中定義,函數(shù)的作用就是延時N個指令周期。根據(jù)這個函數(shù)就可以實現(xiàn)精確的延時函數(shù)了(但不能做到100%精確度)。實現(xiàn)的方法:建立一個delay.h的頭文件:#ifndef __IAR_DELAY_H#define ...
- 202104-23AVR學習筆記------SPI總線和AVR SPISPI是一種采用串行同步方式的3線或4線通信接口,使用信號有使能信號,同步時鐘,同步數(shù)據(jù)輸入和數(shù)據(jù)輸出。其常用于微控制器和外圍芯片的直接連接和擴展。 一個典型的SPI總線系統(tǒng)包括一個主機和一個從機,雙方之間通過主機輸出/從機輸入(MOSI),主機輸入/從機輸出(MISO) ,同步時鐘信號(SCLK),從機選擇(SS...
- 202104-23AVR c語言的位操作位操作一個共同的任務是編程微控制器 MCU打開或關閉IO 寄存器的一些位bit 很幸運標準C 有較好的和適用的位操作功能而沒有借助于匯編指令或其它非標準C 結(jié)構(gòu)C 定義了一些按位進行的運算是很有用的a | b – 按位或 這個表達式指示中a 被表達式中的b 按位進行或運算這慣用于打開某些位尤其常用|=的形式例如PORTA |= 0x80; // 打開位7 (最高位)a...
- 202104-23AVR的bootloader的設置一些注意事項:1.熔絲位的燒寫:BOOTRST要進行編程,這樣單片機在復位后自動跳轉(zhuǎn)到bootloader區(qū)執(zhí)行bootloader的代碼,然后要根據(jù)自己bootloader的大小設置boot區(qū)的的熔絲位:具體設置如下圖,這里我選擇的是1024大?。ㄗ⒁?代表為編程,0代表已編程): 2.設置引導區(qū)鎖定位:為了保護boot...