Forum: Compiler & IDEs Befehlsübersicht AVRGCC


von Malte Struebert (Gast)


Lesenswert?

Hallo,

ich versuche gerade eine LCD ansteuerung in C zu implementieren um
etwas Erfahrung in der Programmierung von AVRs in C zu bekommen. Jetzt
scheitere ich aber schon an der Umsetzung einiger ASM Befehler in C...
kann mir jemand vieleicht sagen ob es so eine Art Befehlsübersicht
gibt?

in etwar so wie die ASM Befehle im Datenblatt nur halt für den GCC
Compiler?

Gruß
Malte.

von Peter Fleury (Gast)


Lesenswert?

Siehe WinAVR Doku ... ! (auf deinem PC
c:\winavr\doc\avr-libc-user-manual)

von Wolfgang Both (Gast)


Lesenswert?

Hallo,
klinke mich hier auch mal mit ein.
Das angegebene Manual enthält functions.

Logische Operationen and / or  oder shift Operationen finde ich
nirgends.
Habe schon etliches abgegrast.

Vielleicht hat ja jemand einen Tip für eine Dummie!

Danke

von Peter (Gast)


Lesenswert?

Hi

schau mal hier:

   http://www.mikrocontroller.net/articles/


Da gibts eine Einführung in C...

von BAB (Kai K.) (Gast)


Lesenswert?

...die Einführung ist aber total veraltet.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

@Wolfgang: Google findet mit dem Suchbegriff "c operatoren" doch genug
brauchbare Seiten.

von Wolfgang Both (Gast)


Lesenswert?

Hallo,

danke !! Tagelanges Rumsuchen beendet. (für Java bin ich besser
ausgestattet)

N.B: Gibts eigentlich einen Ansatz Java => AVR ??

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

http://www.rtjcom.com

Ist noch nicht auf AVR portiert, dürfte aber nicht all zu schwierig
sein. Ob Java hier sinnvoll ist, ist eine ganz andere Frage...

von Peter Fleury (Gast)


Lesenswert?

Hier ein paar Macros die ich in verschiedenen AVR Foren gefunden habe:

*************************************************
// Init:
DDRA &= ~_BV(0); //Bit 0 = Input
PORTA |= _BV(0); //Pull-Up for Bit 0 on

DDRB |= _BV(4); //Using PortB bit4 for output

//check input bit0 on PORTA
if( (PINA & _BV(0)) == 0)
{
 action_key(); //key is pressed
}

//Setting the output bit 4 on PortB
PORTB |= _BV(4);

//Clear the output bit 4 on PortB
PORTB &= ~_BV(4);

// toggle bit 2 on PortB
PORTB ^= _BV(PB2);


******************************************************************


#define LED_RED(onoff) \
  do { \
    if (on) PORTB |= _BV(PB2);\
    else PORTB &= ~_BV(PB2); \
  } while(0)



****************************************************

Man kann Binärzahlen mit folgendem Macro schreiben:

#define BIN8(b7,b6,b5,b4,b3,b2,b1,b0) ((unsigned char)\
                          (b0 << 0)\
                        | (b1 << 1)\
                        | (b2 << 2)\
                        | (b3 << 3)\
                        | (b4 << 4)\
                        | (b5 << 5)\
                        | (b6 << 6)\
                        | (b7 << 7))

z.B.:

x = BIN8(0,0,0,0,0,0,1,0);

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Noch was für Leute die nicht von Binärzahlen loskommen ;-)
http://www.mikrocontroller.net/forum/read-2-16756.html#17267

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.