Ich habe folgenden Quelltext aus einem Tutorial: .include "m8def.inc" ldi r16, 0xFF out DDRB, r16; ldi r16,0xFC; out PORTB, r16; ende: rjmp ende; Könnt ihr mir sagen, wieso nur von 8 LEDs 2 Leuchten und warum LED 1 und LED 4. Ich habe das STK500, daher die Portbezeichnungen Oder könnt ihr vllt erklären wie ich die anderen LEds ansteuern kann. Danke
Marco Müeller wrote: > > Könnt ihr mir sagen, wieso nur von 8 LEDs 2 Leuchten und warum LED 1 und > LED 4. Weil du hier > ldi r16,0xFC; > out PORTB, r16; die Hex Zahl 0xFC auf den Port ausgibst. In binärer Schreibweise ist das F C 1111 1100 eigentlich müssten LED1 und LED2 leuchten :-) Hex Ziffer binär Hex Ziffer binär -------------------------------------------- 0 0000 8 1000 1 0001 9 1001 2 0010 A 1010 3 0011 B 1011 4 0100 C 1100 5 0101 D 1101 6 0110 E 1110 7 0111 F 1111 Offensichtlich leuchtet eine LED genau dann, wenn am Ausgang an der entsprechenden Bitposition eine 0 ausgegeben wird. Das ist eine durchaus übliche Vorgehensweise.
Gast
#737424
Hallo Marco, weil die LED durch einen Transistor invertiert werden.... Gruss Otto
Gast
#737425
ldi r16,0xFC Die Leds werden mit 0-Pegel angesteuert. ldi r16,0x00 und schon alle an.
Gast
#737427
Ok danke das habe ich jetzt verstanden nur 00000000 sind ja 8 Bit also müssten alle 8 LEDs an sein, wie kommt es, dass nur 6 an sind hiern ochmal der QUellcode .include "m8def.inc" ldi r16, 0xFF out DDRB, r16; ldi r16,0b00000000; out PORTB, r16; ende: rjmp ende; Danke
Gast
#737778
Das ist beim STK500 normal. Dein verwendeter Controller ist ein ATmega8. Bei diesem ist für die Pins PB6 und PB7 als alternative Funktionen XTAL1 und XTAL2 (Anschlüsse für externen Quarz) vorgesehen. Diese Pins sind auf dem STK500 nicht mit den PORTB-Headern verbunden. Gruß, Magnetus
Gast
#737781
>wie kommt es, dass nur 6 an sind
Das liegt daran, dass der Mega8 einen 6bit breiten PortB hat.
Gast
#737787
STK500-Besitzer wrote:
> Das liegt daran, dass der Mega8 einen 6bit breiten PortB hat.
Nö. PortB ist 8 Bit breit.
Nachtrag zu meinem vorherigen Posting:
Die Pins PB6 und PB7 sind auch nur als solche verwendbar, wenn der mega8
mit dem internen RC-Oszillator getaktet wird.
Gruß,
Magnetus
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.