leds leuchten nicht

Gast #658412
Lesenswert?

hi all,
ich hab heute mit atmega8 versuchen, zu programmieren. als erstes will 
ich ja nur den ausgang probieren und hier kommt mein problem schon.

//code//
#include <avr/io.h>

int main (void) {

   DDRB  = 0xff;
   PORTB = 0x00;

   while(1) {
   }
   return 0;
}

wenn ich mich nicht irre, müssen alle leds leuchten. die sw7 und 6 
leutchten aber nicht. kann jemand mir irgendwie weiter helfen oder 
sagen, was ich falsch machen könnte?
vg
grant
#658419
Lesenswert?

Lass mal raten: Du arbeitest mit nem STK500 und benutzt die auf dem 
Board befindlichen LEDs?

Die Pins 6 und 7 von Port B des ATMega8 sind nicht auf dem 
PortB-Pinheader, sondern auf dem PortE/Aux-Header (XTAL1 und XTAL2). 
Nimm für die Ausgabe einen anderen Port oder versuche irgendwie, die 
beiden LEDs mit den entsprechenden Pins des PortB-Steckers zu verbinden.
Gast #658422
Lesenswert?

leds sind nicht kaputt, da ich hab versucht, die pinb(0-5), die 
leuchten, auf diese led6 und 7 zu überbrücken. sie leuchten dann. aber 
wenn ich die pin6 und 7 auf andere ledx überbrücke, leutchten die ledx 
nicht.
Gast #658429
Lesenswert?

Ich gehe mal davon aus, dass Du am PortB.6 und B.7 keine Quarz anliegen 
hast...

Vielleicht LEDs falsch rum eingebaut?

Manchmal gibt es alternative Portfunktionen die erst abgeschaltet werden 
müssen um diese Ports nutzen zu können  (z.B. Reset).
#658439
Lesenswert?

grant wrote:
> vielen danke johannes
> da hast du recht. ich hab mit dem stk500 gearbeitet...
Beim nächsten Mal bitte direkt erzählen, mit was für einer Hardware Du 
arbeitest. Dann muss man nicht so viel nachfragen und raten!

> und hab mit dem port c und d programmiert. bei c habe ich dasselbes problem > 
aber bei d hat es geklappt.
PortC.6 ist ja auch normalerweise der Reset-Pin, den man extra freigeben 
muss, um ihn als I/O nutzen zu können. Und PortC.7 existiert beim Mega8 
gar nicht.
#666557
Lesenswert?

Hi,

ich hab des selbe Problem, dass bei meinem STK 500 keine LED's leuchten.
Die Leuchten funktionieren.

Ich benutze einen Atmega16 (habe schon zwei verschiedene probiert).
Zur Übertragung benutze ich AVR Studio 4.

Die Übertragung funkioniert tadellos.

Hier mal des Programm:
1
include "m16def.inc"
2

3
loop:   ldi r18,0b10101010
4

5
  out DDRB, r18
6

7
  rjmp loop
#666588
Lesenswert?

Also so etwa.

Leider gehts immer noch nicht. Ich komm einfach nicht drauf warum.

Fuses (mit Häckchen aktiviert):

-On-Chip Debug Enabled
-Boot Flash section size=1024 words Boot start 
adress=$1C00;[BOOTSZ=00];default value
-Brown-out detection level at VCC4,0V
-Brown-out detecion enabled
-Int. RC OSC 4MHz; Start-up time: 6CK+0ms

LockBits (mit Häcken aktiviert):

-Mode 1: No memory lock features enabled
-Application Protection Mode 1: No lock on SPM and LPM in Application 
Section
-Boot Loader Protection Mode 1: No lock on SPM and LPM in Boot Loader
1
#include "m16def.inc"
2

3
loop:   ldi r18,0b10101010
4
    out DDRB,r18
5
    out PortB,r18
6
      rjmp loop
Gast #666593
Lesenswert?

Ach ja, der DDRB ist noch falsch gesetzt.
"1" bedeutet Ausgang, "0" Eingang.
Somit lautet der Programmabschnitt so:

.include "m16def.inc"

loop:
    ldi r18,0xFF
    out DDRB,r18     ;setzt kompletten PortB als Ausgang
    ldi r18,0x00
    out PORTB,r18    ;aktiviert LEDs
rjmp loop

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren