ATmega16定時器1的時間設定

2021-09-26 03:38:52 字數 860 閱讀 4473

在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...