Hallo zusammen, habe da ein paar Fragen zum Thema Daten von Mikrocontroller über die parallele Schnittstelle zum Pc sendet. Zur Info: Muss ein Byte so zerlegen, dass ich es nur über 4 Pins des ATmega16 zum Pc senden kann. DAs Problem ist, dass wenn ich das Byte komplett Null (00000000) setzte, dann kommt am PC nicht Null an, sondern -122. Weiß echt nicht wieso!!!! Hab den Mikrocontroller mit BASCOM und am PC mit C programmiert. Hier einige Auszuge: BASCOM: $baud = 9600 $crystal = 8000000 $regfile "m16def.dat" Ddrb = &B00000001 'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang) Port5 Ddrb = &B00001111 Portb = &B00000000 Config Portb = Output Dim Bsend As Byte Do Bsend = &B00000000 ' Shift Bsend , Right , 4 Portb = Bsend ' If Bsend < 128 Then ' Bsend = Bsend + 128 Loop End In C wieder einlesen: void main() { //... do { cout<<"\n"<<micro(); dum1=0; dum2=0; for(i=0;i<2;i++) { byte=micro(); cout<<"\n"<<" byte="<<byte; if (byte<128) { dummy=byte; dummy=dummy & 00001111; dum1=dummy>>3; cout<<"\n"<<" dummy="<<dummy; } if (byte>=128) { byte=byte & 00001111; dum2=byte<<1; cout<<"\n"<<"dum2="<<dum2; } dummy=dum1 + dum2; //cout<<"\n"<<"dummy="<<dummy; } //... } Weiß echt nicht, warum der das nicht macht.Ist das allererste Mal, dass ich nen Mikrocontroller programmiere!!! Hoffe irgendjemand kann mir helfen. Schon mal Danke Gruß Fuzzy
Die Beschreibung macht deinem Namen alle Ehre ;-) Mir ist noch nicht klar: 1/ wie der µC feststellt, dass der PC die Daten übernommen hat bevor der µC die nächsten Daten losschickt. Ich hätte erwartet, dass mindestens noch eine Steuerleitung benutzt wird 2/ wie der PC die Daten von dem Parallelport abfragt. Dies scheint in der nicht angegebenen aber essentiellen Funktion micro() zu passieren. 3/ ist die Ausgabe -122 eigentlich die Ausgabe "byte=-122" oder "dummy=-122" plus "dummy=-122" oder "dum2=-122" plus "dummy=-122"
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.