Forum: Mikrocontroller und Digitale Elektronik Atmega 8515 C Programmierung


von Florian idb (Gast)


Lesenswert?

Hi Leute,

hab da ein kleines Problem und zwar möchte ich gerne alles LEDs an PORT 
B
einschalten aber es klappt einfach nicht.

Hier mein Prog:

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

int main (void) {

   DDRB = 0xff;


   while(1)
   {
   PORTB = 0xff;

   }

   /* wird nie erreicht */
   return 0;
}

Der Compiler und AVR Studio Funktionieren Korrekt da ich ein Programm 
geschrieben habe um ein Bit in den EEPROM zu schreiben was auch 
funktioniert nur das mit den Ports nicht.

Die Schaltung ist auch korrekt da es mit einem Assembler Prog. 
funktioniert.

MfG

Flo

von Johannes M. (johnny-m)


Lesenswert?

Sicher, dass die LEDs low-side angeschlossen sind?

von Florian idb (Gast)


Lesenswert?

Wie meinst du das?Gibt es einen Unterschied?Denn mit dem Assembler 
Programm funktioniert es ja.

von Johannes M. (johnny-m)


Lesenswert?

Florian idb wrote:
> Wie meinst du das?Gibt es einen Unterschied?Denn mit dem Assembler
> Programm funktioniert es ja.
Auch mit 0xFF im PORTB? Haste mal 0x55 in PORTB geschrieben? Dann müsste 
eigentlich jede zweite LED leuchten...

Ob eine LED high- oder low-side angeschlossen ist, entscheidet, ob die 
LED mit einer 0 oder einer 1 im PORTx-Register eingeschaltet wird...

von Florian idb (Gast)


Lesenswert?

Ahso.Ja habe im Assembler Programm auch 0xFF drin stehen.

von Johannes M. (johnny-m)


Lesenswert?

Florian idb wrote:
> Ahso.Ja habe im Assembler Programm auch 0xFF drin stehen.
Tja, dann stimmt etwas anderes nicht...

von Florian idb (Gast)


Lesenswert?

So habe nun das Assembler Prog. mit 0xff getestet --> LED an
und im C Prog mit 0x00 --> LED auch an.

Das is doch komisch oder?

von Johannes M. (johnny-m)


Lesenswert?

Florian idb wrote:
> So habe nun das Assembler Prog. mit 0xff getestet --> LED an
> und im C Prog mit 0x00 --> LED auch an.
Hä? Wie das?

> Das is doch komisch oder?
Allerdings. Das Assemblerprogramm würde ich gerne mal sehen...

von Florian idb (Gast)


Lesenswert?

ldi R16,0xFF
out DDRB, R16

ldi R16, 0xFF
out PORTB, R16

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.