我正在编写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