PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Assembler Code wo liegt mein Fehler?



DanielSan
24.08.2009, 10:00
Hi,

ich habe schon im Bascom Forum einen Eintrag gemacht, aber ich denke hier kann mir ehr geholfen werden.

Ich verwende einen ATmega8 (@8Mhz). Ich möchte das eine IR-LED an PB1 mit 38kHz blinkt. Mein Code sieht so aus:



$regfile = "m8def.dat"
$baud = 19200
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 8000000

Config Portb.1 = Output


Do


$asm

push r16
ldi r16,26
Out Tccr1a , R16
ldi r16,0x6D
Out Ocr1al , R16
ldi r16,0xFF
Out Ocr1ah , R16
pop r16

$end Asm

Wait 2

$asm

Push R16
clr r16
Out Tccr1a , R16
pop r16

$end Asm

Wait 5

Loop

End

Könnt ihr mir Sagen wo mein Fehler liegt?
In der IR LED kann man ein ganz schwaches rotes Licht sehen. Und der 7805 wird mollig warm. Daher vermute ich, das die LED schon blinkt. Aber es werden keine Pausen gemacht.

Danke
MFG Daniel

s.o.
24.08.2009, 17:35
Wahrscheinlich vorwiderstand vergessen. Des Weiteren bezweifle ich, ob du mit dem ASM Code die Frequenz triffst, schon mal nachgemessen?