Forum: Mikrocontroller und Digitale Elektronik Portausgabe


von Jim (Gast)


Lesenswert?

Hallo,
ich möchte über einen beliebigen port zb p1.0
 bytes ausgeben

kann man das mit ner for schleife tun
zb

for (u = 0; u<= 2; u++)
         {
            P1.0 = (char)daten; // Daten schreiben

         }
usw

von Timmo H. (masterfx)


Lesenswert?

An einem Port-pin (also seriell) so wie ich das sehe. Dann müsste man
das z.B. so machen:
1
void send_byte(char byte){
2
   char i;
3
   for(i = 0; i < 8; i++){
4
     if(byte & 0x01)
5
        p1.0 = 1;
6
     else
7
        p1.0 = 0;
8
     byte >>= 1;
9
   }
10
}
Ich denke das sollte so gehen.

von Timmo H. (masterfx)


Lesenswert?

Das ganze würde natürlich das LSB zuerst rausschieben. Willst du das MSB
zuerst rausschieben musst du natürlich mit 0x80 verUNDen und eben
linksschieben

von Timmo H. (masterfx)


Lesenswert?

Sorry hab schon wieder was vergessen. Das Beispiel da oben, bringt dir
natürlich nur was wenn die gegenstelle auch weiss wo ein Bit aufhört
und wo das nächste anfängt. Also muss man noch irgentwie einen Takt auf
einem anderen Pin ausgeben.

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.