當計數器TCNT0的數值等于比較寄存器OCR0時計數器TCNT0自動清零。OCR0定義了計數器的最大(TOP)值,這個模式使得用戶可以很容易地控制比較匹配輸出的頻率。T/C0的比較輸出腳為OC0(PB3),PB口的第三腳,在此模式下可以在OC0上輸出PWM控制外部設備。
例如:在OC0腳上輸出20HZ的方波信號,方波的周期時間為T=1/20HZ=0.05秒=50ms,半個周期為25ms,系統采用8MHZ晶振,1024分頻,時鐘計數頻率為8000000/1024=7812.5HZ,每個時鐘脈沖時間為1/7812.5=0.128ms, 定時25ms的計數值為25ms/0.128ms=195,將195賦值為T/C0的比較寄存器OCR0,啟動定時器后,TCNT0從0開始計數,當計數到195時,產生比較中斷,在OC0腳上輸出20HZ的占空比為50%的方波信號。
操作過程如下:
一、I/O管腳初始化:PB3(OC0)腳設為輸出,DDRB|=(1《
二、使能全局中斷:SREG=0X80;
三、T/C0比較中斷允許:TIMSK|=(1《
四、TCCR0配置:分頻系數為1024, TCCR0|=(1《
CTC模式設置, TCCR0|=(1《
比較匹配時OC0取反 TCCR0|=(1《
五、計數器付初值: TCNT0=0;
OCR0=195; //付初值后定時器開始工作
//函數功能:在PB3上輸出20HZ的方波,并在PD7上產生周期2秒的周期信號。(代碼來自輕松玩轉avr單片機c語言cd)
#include
char Counter = 0; // 計數變量清零
void port_init()
{
DDRB|=(1《PORTB&=(0《DDRD|=(1《PORTD&=(0《}
void TImer0_init()
{
SREG = 0x80; //使能全局中斷
TIMSK= (1《《 OCIE0); //T/C0比較匹配中斷允許
TCCR0=(1《// T/C0工作于CTC模式,1024分頻,比較匹配時,觸發OC0取反
TCNT0 = 0; //定時初值設置,
OCR0 = 195; //比較匹配寄存器初值
}
void main()
{
port_init();
TImer0_init();
while(1);
}
#pragma interrupt_handler TImer0_COMP:20
void timer0_COMP(void)
{
TCNT0 = 0; //定時初值設置,
OCR0 = 195; //比較匹配寄存器初值
if(++Counter 》= 40) //定時時間到1S嗎?定時中斷溢出40次為1S
{
PORTD^=(1《Counter = 0; //1S計時變量清零
}
}
上一篇:AVR單片機對外部RAM的擴展
下一篇:AVR單片機硬件線路的設計步驟及方法
推薦閱讀
史海拾趣
Esc Electronics Corp(簡稱Esc)在成立的初期,以其獨特的技術突破在電子行業中嶄露頭角。公司研發出一款高效能、低成本的電子元件,成功吸引了市場的注意。隨著產品的不斷迭代和技術的持續創新,Esc的產品線逐漸豐富,市場份額也逐步擴大。公司憑借技術優勢和敏銳的市場洞察力,成功開拓了多個新的市場領域。
DEWALT公司非常注重產品品質和用戶體驗。公司建立了嚴格的質量控制體系,確保每一件產品都符合高質量標準。同時,DEWALT還積極傾聽用戶反饋,不斷改進產品和服務。這些努力使DEWALT公司的電動工具在市場上獲得了廣泛認可,并贏得了大量忠實用戶。
在取得初步成功后,Concurrent Logic開始擴展其產品線。他們不僅開發了多款針對不同應用場景的并行處理芯片,還進軍了與并行計算緊密相關的其他硬件領域,如高性能的服務器和存儲設備。這些新產品的研發和上市,進一步增強了公司在市場上的競爭力。
在產品多元化的基礎上,義隆電子開始積極拓展國際市場。公司以臺灣新竹科學園區為營運總部,在亞洲、美洲等多個國家和地區設立了分支機構和設計中心。通過與全球合作伙伴的緊密合作,義隆電子的產品逐漸進入歐洲、亞洲和美洲等市場,實現了全球布局。
在產品多元化的基礎上,義隆電子開始積極拓展國際市場。公司以臺灣新竹科學園區為營運總部,在亞洲、美洲等多個國家和地區設立了分支機構和設計中心。通過與全球合作伙伴的緊密合作,義隆電子的產品逐漸進入歐洲、亞洲和美洲等市場,實現了全球布局。
作為一家有社會責任感的企業,義隆電子一直關注可持續發展問題。公司積極推廣綠色生產理念,采取環保措施減少生產過程中的污染排放。同時,義隆電子還關注社會公益事業,積極參與各種慈善活動,回饋社會。這些舉措不僅提升了公司的品牌形象,也為公司的長期發展奠定了堅實基礎。
請注意,以上故事框架僅供參考,具體的故事內容需要根據義隆電子的實際情況進行撰寫。
如何在task的entry函數返回后,還能訪問該task的一些info? task退出后(請注意不是刪除),會釋放掉task stack和task control block task id其實就是指向TCB的指針,會在task退出后失效, 這樣再掉一些要用到的task id的接口都失敗。 我在考慮是不是能創建一種task,在退出時不釋放相關的資源,只有在調用 ...… 查看全部問答∨ |
剛接觸嵌入式操作系統wince,不知從何入手,請大俠指點! 1、怎么實現內核裁減。程序加載后不想啟動wince的界面,用自己的。 2、順便給俺推薦幾本書籍… 查看全部問答∨ |
我是菜鳥,想請各位大哥幫忙給指點一下。 我現在想在Wince下監測usb接口是否收到PC發送過來的數據,Wince作為Client端,我想利用功能驅動serial,但不知道在應用程序中該怎么調用,還望指點一下。… 查看全部問答∨ |
我調試的sim300c的GPRS能夠給公網的PC機發數據,但是PC機給模塊發數據就收不到!pc機上的軟件用的是<TCP&UDP測試工具>,那位大俠指點一下,還有就是如果GPRS接收到的數據是不是就直接通過Tx腳傳給單片機了?賜教… 查看全部問答∨ |
我的一塊板用的是stm8 105c6,燒寫次數多得記不清了.應該差不多快10k次.最近幾次發現I2C讀寫錯誤.用手指摸MCU,有點 ...… 查看全部問答∨ |
看到TI的M3提供的圖形庫挺好看的,后來在ST網上看到AN3128文檔中介紹了一個圖形函數庫的使用,界面也不輸TI的,功能挺強的,每個函數介紹的也很詳細的,可是官方網站上好像沒有相應的下載鏈接啊,這個會發布么。… 查看全部問答∨ |
本人最近在調試5545,用的是內參考,輸出為CMOS的2進制補碼, 但是他的輸出時鐘時有時無,電壓都符合要求,一開始我以為是虛焊所以又重新焊了一遍,但之后就一直出不來了,請求各位不吝賜教啊!… 查看全部問答∨ |
在WINCE5.0上,運行我的APP,系統運行變慢;關閉APP后,系統依然很慢。 我一般用EVC4.0 里的Peformance Monitor監控內存及CPU的使用率,可是當系統變慢時,Peformance Monitor立即與開發平臺斷開連接了。 而且,這種變慢的現象是隨機出現的,復現 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 意法半導體緊湊型可配置車規負載驅動器具備安全引腳
- 美光宣布在美投資增至 2000 億美元,加建晶圓廠和 HBM 封裝設施
- AMD舉辦Advancing AI 2025大會:Instinct MI350系列GPU發布,35倍推理性能提升
- 特斯拉起訴前Optimus機器人工程師,指控其竊取商業機密
- Nordic Semiconductor將在MWC上海2025上展示前沿蜂窩物聯網解決方案
- SiC 市場的下一個爆點:共源共柵(cascode)結構詳解
- 香港科技大學工學院推出擬人化自動駕駛系統
- 現代摩比斯推出新型安全技術 防止追尾碰撞
- 研究人員開發新型機器人系統 利用AI賦能機器人技術
- 研究人員開發具有突破性觸覺靈敏度的機械手 可實現類人靈巧操作
- 將低功耗設計進行到底——評論、轉發贏大禮!
- 芯幣競拍:感恩教師節專場
- Keysight示波器主題月有獎系列活動之 注冊大獎天天抽 搶樓踩中亦有獎
- Microchip有獎直播:VectorBlox™ SDK 報名中
- 有獎直播|ADI 慣性MEMS應用那些事
- 借助 Microchip 生態系統中的 PIC® 和 AVR® 單片機開啟嵌入式到云端之旅 系列在線研討會
- 帶你零起點入門STM32(專為嵌入式應用而開發的內核)
- 福祿克首款熱成像萬用表Fluke-279FC 即將上市!填寫問卷贏好禮嘍!
- EEWorld Datasheet 伴你同行!快來領取200芯積分福利啦~
- 泰克福袋:示伴功倍,萬能福袋派送中