www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik über parallele Schnittstellen von uC an PC


Autor: Fuzzy Fuzzy (fuzzy)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.