Hallo, ik ben een ATMega32 aan het programmeren in AVR sudio 4 via een STK500. Nu wil ik om te beginnen dat als de spanning op de CPU komt gelijk Poort B bit 0 hoog wordt.
Ik heb het volgende, echter werkt het niet, het werkt wel via de simulator van AVR. Hoe kan dit? Help me out please.
WDR ;Watchdog reset
CLR R16 ;Clear register 16
SBR R16,$01 ;Bit 0 van R16 1
OUT $17,R16 ;Port B pin 0 as output
NOP ;Wait
OUT $18,R16 ;Port B pin 0 high
NOP ;Wait
Stefan86
Achtung! Hochspannung, Lebensgefahr!!
Hoe meet je die pin of die hoog is met een multimeter of sluit je hem aan op de leds op de STK500. De leds op de STK500 zijn namelijk geinverteerd als je een pin hoog maakt zal die juist uit gaan.
Hmm ik heb niet veel verstand van assembler maar is er niet een ander commando meer dan OUT nodig om de poort daadwerkelijk hoog te maken?
Het lijkt mij logisch dat OUT alleen de poort output maakt.
Stefan86
Achtung! Hochspannung, Lebensgefahr!!
Op 6 augustus 2005 20:20:48 schreef Zundapp47:
Hmm ik heb niet veel verstand van assembler maar is er niet een ander commando meer dan OUT nodig om de poort daadwerkelijk hoog te maken?Het lijkt mij logisch dat OUT alleen de poort output maakt.
Hij zegt dat het via de simulator wel werkt dus lijkt me dat de code goed is. Ik heb ook geen verstand van assembler dus, ik doe alles in C.
Misschien wat met de fuses verkeerd, verkeerde clock? Iemand die wel assambler snapt misschien een idee.
[Bericht gewijzigd door Stefan86 op ]
Idd,
probeer eens een 1 pin hoog en een andere laag te zetten en meet hier dan eens op!
btw:
$18 is toch in hex vorm als ik het goed heb?
en 0x18 is toch in binair 0011000
mss een vergissing in MSB/LSB oid
ps: is dit het enige dat uw programma doet, wss niet, graag de volledige asm 
[Bericht gewijzigd door shortcircuit op ]
Ben eruit hoor. Bedankt voor de snelle reacties. Inderdaad zijn de leds op de STK500 geinverteerd, dus vandaar. Ik heb het na gemeten en het klopt nu allemaal. Bedankt allemaal.