メモリを節約するためにArduino UNO(= ATMega328P-PU)プログラムを書いていますので、avra.exe(Atmelスタジオのavrasm32と同じ)を使用して、コンパイルしてavrdudeをアップロードしてシンプルにします点滅するようなプログラムは正常に動作します。しかし、今私はpwmでLEDを半分明るくしようとしました。私はエラーのために私のコードをチェックしたが、私は何も見つけられなかったが、LEDはちょうど完全なbrighs。私は配線もチェックしました。ここに私のpwm.asmコード:Arduino PWMフェーディングwith 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