Befehlsübersicht AVRGCC

Gast #40596
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.
Gast #40598
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
Gast #40604
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);

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