Pegel am Pin in ein Byte lesen

Gast #164024
Lesenswert?
• ▲
▼
Hallo,
ich bin sicher, das ist schon mal diskutiert worden - aber wo finde ich
das nur?

Also, an einen Pin vom mega64 steht von extern ein serieller Datenstrom
an. Der Clock hierzu wird vom mega64 geliefert. Die Daten, die ankommen,
müssen in einer Variablen(Byte) abgelegt werden.

Mein Problem ist, wie füge ich die einzelnen Pin-Informationen in meine
Variable ein.

Mein Compiler: CodeVision

Schönen Gruß Norbert
Gast #164025
Lesenswert?
• ▲
▼
Aus dem Kopf (ungetestet):

uint8_t
getbyte(void)
{
    unit8_t bitcnt = 0, retval = 0;

    for(bitcnt = 0; bitcnt < 8; bitcnt++)
    {
        retval <<= 1;

        if(PINx & (1 << Pxx))
            retval |= 1;
        else
            retval &= ~1;
    }

    return retval;
}
Gast #164026
Lesenswert?
• ▲
▼
Hallo OldBug,

besten Dank, für diesen Code. Werde den übers Wochenende austesten.
Da ich, evtl., auch eine ulong-Variable beschreiben möchte, kann ich
den Code ja leicht anpassen.


Schönen Gruß Norbert

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