PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ports funktionieren nicht so wie sie sollen (Sisy AVR-Board)



ComCat
16.05.2005, 16:34
Hallo,

ich versteh die Welt nimmer. Ich habe mir zum Einstieg das im Titel besagte SiSy AVR-Board in der Version 1.4c gekauft. Das Zusammenlöten lief problemlos. Zum Test spielte ich das Testprogramm welches AVR zur Verfügung stellt drauf und auch das funktionierte ( Taster, LEDs, Beeper, Ausgabe an der seriellen Schnittstelle).
Jetzt wollte ich einfach ein Assemblerprogramm draufspielen, welches einfach beim Bedienen eines Tasters eine LED anmacht. Im Prinzip ist es nichts anderes als in vielen AVR-Tutorials am Anfang erklärt wird. Nur, wenn ich diesen Code auf den Controller spiele, funktioniert gar nichts richtig :

.include "m8def.inc"

begin: rjmp main ; 1 POWER ON RESET
reti ; 2 Int0-Interrupt
reti ; 3 Int1-Interrupt
reti ; 4 TC2 Compare Match
reti ; 5 TC2 Overflow
reti ; 6 TC1 Capture
reti ; 7 TC1 Compare Match A
reti ; 8 TC1 Compare Match B
reti ; 9 TC1 Overflow
reti ; 10 TC0 Overflow
reti ; 11 SPI, STC Serial Transfer Complete
reti ; 12 UART Rx Complete
reti ; 13 UART Data Register Empty
reti ; 14 UART Tx complete
reti ; 15 ADC Conversion Complete
reti ; 16 EEPROM Ready
reti ; 17 Analog Comparator
reti ; 18 TWI (I²C) Serial Interface
reti ; 19 Store Program Memory Redy
;------------------------------------------------------------------

main :

LDI r16,LOW(RAMEND)
OUT SPL,r16 ;Init Stackpointer
LDI r16,HIGH(RAMEND)
OUT SPH,r16
LDI r16,0b11111111
OUT DDRB,r16
LDI r16,0b00000000
OUT DDRD,r16

mainloop:

WDR
IN r16,PIND
OUT PORTB,r16

RJMP mainloop

Ist das Programm drauf und das Board verkabelt, leuchten die LEDs bereits und bei Betätigung der Taster passiert nichts. Probiere ich ein wenig mit den Pins der Ports rum, kann ich auf einem Pin von Port B mit dem Taster ( an Port D) die Lampe AUSSCHALTEN, aber nicht ein.
Kann mir einer einen Tipp geben ?

Bye,
ComCat

Jahn Kohlhas
16.05.2005, 16:52
Hallo ComCat,

also ich denke mal du solltest nicht so schnell verzweifeln ;-) beschäftige dich mal mit dem thema PULL-UP widerstände und warum man die braucht... die taster ziehen im übrigen genau aus dem grund auf LOW daher kannst du mit deiner lösung die LEDs nur ausschalten... im Downloadbereich von www.myAVR.de gabs auch glaube einen kleinen minni schnelleinstieg in avr-assembler oder wars auf www.sisy.de *GRÜBEL* also mein tipp gib auf PORTD mal 0xff aus dann kommst du dem schon näher was du willst ;-) damit schaltest du die pullups ein.

gruß jahn

ComCat
16.05.2005, 16:57
Vielen Dank, werde es gleich mal testen.

Gruß,
ComCat

ComCat
17.05.2005, 12:38
Hallo nochmal,

falls es noch andere interessiert, oder andere das gleiche Problem haben/hatten, habe ich hier einen Link der pull-up und pull-down Widerstände beschreibt.

http://www.elektronik-kompendium.de/public/schaerer/pullr.htm


Bye,
ComCat