亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>通過(guò)編程其寄存器在ATtiny上啟用PWM

通過(guò)編程其寄存器在ATtiny上啟用PWM

2023-02-10 | zip | 0.33 MB | 次下載 | 免費(fèi)

資料介紹

描述

有沒(méi)有想過(guò)在不使用 ArduinoanalogWrite()函數(shù)的情況下在微芯片上啟用 PWM 有多難?

該項(xiàng)目?jī)H使用本機(jī)硬件功能在 ATtiny85 上重新創(chuàng)建 Arduino 的 Fade 示例。在無(wú)法訪問(wèn) Arduino 的語(yǔ)法糖化的情況下,我們需要重新創(chuàng)建 Arduino 的analogWrite()函數(shù)。在引擎蓋下,此功能通過(guò)在 ATtiny85 上設(shè)置必要的寄存器來(lái)啟用脈沖寬度調(diào)制 (PWM)。有關(guān) PWM 如何工作的更多信息,請(qǐng)參閱這些精彩教程

您還需要 Atmel 的數(shù)據(jù)表來(lái)了解寄存器的命名方式以及它們控制的功能:

第 1 步:組裝電路

按照項(xiàng)目附帶的圖表組裝電路。它看起來(lái)應(yīng)該類似于:

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

第 2 步:將您的 Arduino Uno 配置為充當(dāng)程序員

我們不會(huì)將我們的程序上傳到 Arduino Uno,而是將其用作編程設(shè)備以將我們的代碼傳輸?shù)?ATtiny。要使任何 Arduino 硬件充當(dāng)程序員,請(qǐng)打開 Arduino IDE 并選擇文件 > 示例 > ArduinoISP 驗(yàn)證我們的 Arduino Uno 在Tools > Board and Tools > Port中被正確選擇。打開示例草圖,選擇Sketch > Upload 。我們的 Arduino Uno 現(xiàn)在充當(dāng)程序員。

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

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

重啟 Arduino IDE,點(diǎn)擊Tools > Board > Board Manager…并搜索 ATtiny。您應(yīng)該找到David A. Mellis 的結(jié)果 attiny 。點(diǎn)擊Install將 ATtiny 的代碼添加到 Arduino IDE 中。

現(xiàn)在我們可以選擇我們的 ATTiny 作為上傳目標(biāo)。在“工具”>“電路板”中選擇ATtiny85 ,在“工具”>“端口”下選擇 Arduino Uno。工具 > 程序員下選擇 Arduino 作為 ISP。要將代碼上傳到我們的 ATtiny,請(qǐng)選擇Sketch > Upload Using Programmer 打開此項(xiàng)目附帶的代碼并將其上傳到 ATtiny。幾秒鐘后,LED 應(yīng)該開始閃爍,因?yàn)?ATtiny 開始執(zhí)行程序代碼。如果拋出任何錯(cuò)誤,通常是因?yàn)椴季€錯(cuò)誤。仔細(xì)檢查所有內(nèi)容,重新啟動(dòng) Arduino IDE 并再試一次。

第 3 步:讓我們編寫代碼

由于我們不想使用 Arduino 的任何內(nèi)置功能,我們現(xiàn)在需要手動(dòng)包含 avr-libc 庫(kù)。

#include 
#include 

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

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

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

我們?cè)O(shè)置的最后一位是在定時(shí)器/計(jì)數(shù)器控制寄存器 B 中:我們禁用 PWM 定時(shí)器的預(yù)分頻。現(xiàn)在我們不調(diào)用 analogWrite()(就像我們使用 Arduino 的函數(shù)時(shí)那樣),而是將輸出比較寄存器 A ( OCR0A ) 設(shè)置為所需的值:

OCR0A = value;

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

/*
  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;
}

執(zhí)照

這個(gè)項(xiàng)目是在麻省理工學(xué)院許可證下發(fā)布的。

?


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

評(píng)論

查看更多

下載排行

本周

  1. 1PFC電路與BOOST電路設(shè)計(jì)實(shí)例分享
  2. 1.83 MB   |  12次下載  |  4 積分
  3. 2世平基于靈動(dòng)微 SPIN560C 的低壓無(wú)刷電機(jī)應(yīng)用方案
  4. 10.93 MB  |  11次下載  |  免費(fèi)
  5. 3電源測(cè)試報(bào)告-基于 國(guó)民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
  6. 6.47 MB  |  11次下載  |  免費(fèi)
  7. 4PWM控制器的控制方法
  8. 0.39 MB   |  3次下載  |  4 積分
  9. 5電流檢測(cè)芯片F(xiàn)P135應(yīng)用說(shuō)明
  10. 1.24 MB   |  3次下載  |  免費(fèi)
  11. 6全面解讀被動(dòng)式與主動(dòng)式PFC電路
  12. 1.27 MB   |  1次下載  |  4 積分
  13. 7HC88L051F4低功耗芯片規(guī)格書
  14. 4.76 MB  |  1次下載  |  免費(fèi)
  15. 8CIU32D655x5數(shù)據(jù)手冊(cè)
  16. 2.14 MB   |  1次下載  |  免費(fèi)

本月

  1. 1常用電子元器件使用手冊(cè)
  2. 2.40 MB   |  52次下載  |  免費(fèi)
  3. 2高功率密度碳化硅MOSFET軟開關(guān)三相逆變器損耗分析
  4. 2.27 MB   |  33次下載  |  10 積分
  5. 3PFC電路與BOOST電路設(shè)計(jì)實(shí)例分享
  6. 1.83 MB   |  12次下載  |  4 積分
  7. 4世平基于靈動(dòng)微 SPIN560C 的低壓無(wú)刷電機(jī)應(yīng)用方案
  8. 10.93 MB  |  11次下載  |  免費(fèi)
  9. 5電源測(cè)試報(bào)告-基于 國(guó)民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
  10. 6.47 MB  |  11次下載  |  免費(fèi)
  11. 6USB拓展塢PCB圖資料
  12. 0.57 MB   |  11次下載  |  免費(fèi)
  13. 7MS1826 HDMI 多功能視頻處理器數(shù)據(jù)手冊(cè)
  14. 4.51 MB   |  9次下載  |  免費(fèi)
  15. 8HAL9303線性霍爾效應(yīng)傳感器技術(shù)手冊(cè)
  16. 0.70 MB   |  9次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935134次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191424次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183352次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81600次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73818次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分