über parallele Schnittstellen von uC an PC

OP #455094
Lesenswert?
• ▲
▼
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
Gast #455148
Lesenswert?
• ▲
▼
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"

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.