精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>通過編程其寄存器在ATtiny上啟用PWM

通過編程其寄存器在ATtiny上啟用PWM

2023-02-10 | zip | 0.33 MB | 次下載 | 免費

資料介紹

描述

有沒有想過在不使用 ArduinoanalogWrite()函數的情況下在微芯片上啟用 PWM 有多難?

該項目僅使用本機硬件功能在 ATtiny85 上重新創建 Arduino 的 Fade 示例。在無法訪問 Arduino 的語法糖化的情況下,我們需要重新創建 Arduino 的analogWrite()函數。在引擎蓋下,此功能通過在 ATtiny85 上設置必要的寄存器來啟用脈沖寬度調制 (PWM)。有關 PWM 如何工作的更多信息,請參閱這些精彩教程

您還需要 Atmel 的數據表來了解寄存器的命名方式以及它們控制的功能:

第 1 步:組裝電路

按照項目附帶的圖表組裝電路。它看起來應該類似于:

pxl_20220123_140023728_sGwOarZNYW.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
組裝電路
?

第 2 步:將您的 Arduino Uno 配置為充當程序員

我們不會將我們的程序上傳到 Arduino Uno,而是將其用作編程設備以將我們的代碼傳輸到 ATtiny。要使任何 Arduino 硬件充當程序員,請打開 Arduino IDE 并選擇文件 > 示例 > ArduinoISP 驗證我們的 Arduino Uno 在Tools > Board and Tools > Port中被正確選擇打開示例草圖,選擇Sketch > Upload 我們的 Arduino Uno 現在充當程序員。

接下來我們需要為 ATtiny 安裝核心,這樣我們就可以使用它的庫了。打開首選項并在其他 Board Manager URL下添加:

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

重啟 Arduino IDE,點擊Tools > Board > Board Manager…并搜索 ATtiny。您應該找到David A. Mellis 的結果 attiny 點擊Install將 ATtiny 的代碼添加到 Arduino IDE 中。

現在我們可以選擇我們的 ATTiny 作為上傳目標。在“工具”>“電路板”中選擇ATtiny85 ,在“工具”>“端口”下選擇 Arduino Uno。工具 > 程序員下選擇 Arduino 作為 ISP。要將代碼上傳到我們的 ATtiny,請選擇Sketch > Upload Using Programmer 打開此項目附帶的代碼并將其上傳到 ATtiny。幾秒鐘后,LED 應該開始閃爍,因為 ATtiny 開始執行程序代碼如果拋出任何錯誤,通常是因為布線錯誤。仔細檢查所有內容,重新啟動 Arduino IDE 并再試一次。

第 3 步:讓我們編寫代碼

由于我們不想使用 Arduino 的任何內置功能,我們現在需要手動包含 avr-libc 庫。

#include 
#include 

接下來,我們需要在 ATtiny 上啟用脈沖寬度調制 (PWM)。PWM 允許我們像使用 analogWrite() 函數一樣控制輸出。幕后發生的事情是特殊寄存器中的某些位被設置為啟用 PWM:

int main()
{
  DDRB = 1 << DDB0; 
  TCCR0A = 1 << COM0A1 | 1 << WGM01 | 1 << WGM00;
  TCCR0B = 1 << CS00;
}

第一個寄存器是數據方向寄存器端口 B ( DDRB )。這類似于“pinMode(0, OUTPUT)”,它設置引腳的數據方向。我們在 DDBO(端口 B 引腳 0)位置啟用該位。接下來的兩個寄存器是定時器/計數器控制寄存器 A 和 B ( TCCR0A , TCCR0B) 它們控制 PWM 定時器我們正在啟用用于比較匹配輸出 A 模式(將 PWM 設置為非反相模式)的位和用于波形生成模式寄存器 0 和 1 的另外兩位。這將啟用快速 PWM。

我們設置的最后一位是在定時器/計數器控制寄存器 B 中:我們禁用 PWM 定時器的預分頻。現在我們不調用 analogWrite()(就像我們使用 Arduino 的函數時那樣),而是將輸出比較寄存器 A ( OCR0A ) 設置為所需的值:

OCR0A = value;

其余部分類似于 Arduino IDE 中的原始 Fade.ino 示例草圖。整個項目代碼如下所示:

/*
  Fade for ATtiny85 using only avr-libc
*/

#include 
#include 

int fadeAmount = 5;
int brightness = 0;

int main()
{
 DDRB = 1 << DDB0;
 TCCR0A = 1 << COM0A1 | 1 << WGM01 | 1 << WGM00;
 TCCR0B = 1 << CS00;
 while (1) {
   brightness = brightness + fadeAmount;
   if (brightness <= 0 || brightness >= 255) {
     fadeAmount = -fadeAmount;
   }
   OCR0A = brightness;
   _delay_ms(30);
 }
 return 0;
}

執照

這個項目是在麻省理工學院許可證下發布的。

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費