我正在編寫Arduino UNO(= ATMega328P-PU)程序在程序集中以節省內存,所以我使用avra.exe(與atmel工作室的avrasm32相同)編譯和avrdude上傳,並簡單像閃爍程序運行良好。但是現在我試圖用pwm半亮LED。我檢查了我的代碼中的錯誤,但我沒有發現任何錯誤,但是LED指示燈完全亮了。我也檢查了接線。這是我的pwm.asm代碼:Arduino PWM衰落導致與avra
.nolist
.include "m328pdef.inc"
.list
.cseg
.org 0x00
rjmp start
.org 0x34
start: sbi ddrb, 5 ;pin 13
sbi portb, 5 ;pin 13 on, just to compare with the PWMed led
sbi ddrd, 5 ;pin 5 pwm
ldi r16, 0b00100011 ;fast pwm mode, non inverted pwm at oc0b = pin 5
out tccr0a, r16 ;I'm using Timer0
ldi r16, 0b00000001 ;no prescaler
out tccr0b, r16
ldi r16, 128 ; duty cycle = 50%
out ocr0b, r16
loop: rjmp loop
我試圖改變佔空比值,但沒有改變。
使用avr-gcc我有或多或少相同的.lss(彙編),它工作正常。也許LED連接不正確? – KIIV