在atmel studio 7環境下編寫程式感覺比較舒服。
目的:根據設定的時間觸發中斷,觸發一次,變數累加一次;
用到中斷,所以一開始需要#include
變數:unsigned char time = 0;
定時器1配置:
void configtimer1(unsigned int set)
tccr1b |= (1<<2);//256分頻 比如12m ,就是12000000/256
tmp = 65536-set;//set=( 晶振頻率/分頻) * 定時時間)
tcnt1h = (unsigned char)(tmp>>8);//賦初值 高8位
tcnt1l = (unsigned char)tmp;//低8位
timsk |= (1<<2);//定時器溢位中斷使能
此處的初值設定個人這麼理解:
比如是 0xd8f0,強制轉換為char型別,該型別是8位,所以tcnt1l就取到了第八位0xf0;
把0xd8f0右移8位(當然也可以 /256),不就是0x00d8了,然後強制,tcnt1h就取到高八位0xd8;
void main()
此處一般都是初始化程式;
configtimer1(50);
sreg |= (1<<7);//開全域性中斷
while(1)
此處寫實現某功能的程式;
觸發中斷,就會進入中斷函式
中斷函式:
isr (timer1_ovf_vect)
tcnt1h = (unsigned char)(tmp>>8);
tcnt1l = (unsigned char)tmp;
time++;
使用AVR微控制器ATmega16的循跡機械人
製作乙個機械人對所有電子愛好者來說都是一項挑戰。如果機械人可以在沒有任何外部指令的情況下自動執行某些操作,那麼可以最大化這種挑戰。電子初學者最常製作的機械人之一是循跡機械人。顧名思義,機械人將遵循表面上繪製的線條。線不必是直線。此外,線條可以是任何顏色。大多數紅外感測器用於檢測線條。紅外感測器可以很...
定時器 STM32定時器 基本定時器1
我是鼎!定時器時鐘一定要明確其中有哪些變數。上圖為stm407資料手冊摘出來的,可能看不清楚,其實就蘊含了幾點資訊。注意一點,我們看圖2,我們以apb1舉例,上面掛著很多的外設,包括usart1 adc 以及定時器,我們知道apb1上面最高時鐘頻率為84mhz,但是定時器的時鐘是要在此基礎上乘2,也...
定時器 時間配置
cron表示式是乙個字串,字串以5或6個空格隔開,分為6或7個域,每乙個域代表乙個含義,cron有如下兩種語法格式 seconds minutes hours dayofmonth month dayofweek year或 seconds minutes hours dayofmonth mont...