Forum: Mikrocontroller und Digitale Elektronik Seriell daten mit ATMega 32 empfangen


von Bill (Gast)


Lesenswert?

Hallo liebe leute... vor kurzem habe ich ein programm geschrieben 
welches bisher ohne probleme lief...(auf einem ATmega8)

nun habe ich mir einen ATMega32 zugelegt und die schaltung mit diesem 
Aufgebaut...leider gehts nicht mehr... ich habe schon so viel versucht 
und komme einfach nicht zu einem Resultat... da wollte ich mal fragen ob 
ihr mir nicht helfen könnt...den Aufbau habe ich mehrmals kontrolliert 
...an ihm dürfte es nicht liegen...

ich könnte zwar das programm hochladen, jedoch ist es "sehr lang" und 
beinhaltet mehrere dinge die nichts mit der seriellen übertragung zu tun 
haben...

Daher erst mal... gibt es ähnliche fälle? (Habe die pinbelegungen 
natürlich auch gecheckt... und das programm dementsprechend angepasst... 
geht alles ausser die serielle übertragung)

gibt es vllt Fuse bits die eine Serielle übertragung nicht erlauben oder 
irgentwas?

hier ist der teil der sich mit den seriellen Daten befasst..:

$regfile = "m32def.dat"
$crystal = 3686400                                          'Quarz: 
3.6864 'MHz
$baud = 9600                                                'Baudrate 
der UART: 9600

(...)

Dim Zahl As Byte , I As Byte                             'Definiere 
'Variable (Zahl,I) als Byte
   Dim S As String * 11                                     'Definiere S 
'als Textreihe

   S = ""

(...)

 Locate 2 , 1                                          'Setze LCD Cursor 
'auf Position 2,1
      Zahl = Inkey()                                        '
      If Zahl = 2 Then Goto Bilde Else Goto Raus            'Wenn 
'Startbyte(2) gelesen wird gehe zu Bilde sonst zu Raus


   Bilde:                                                   'Schleife 
Bilde

      While Zahl <> 4                                       'While 
'schleife so lange wie Zahl verschieden von 4 ist
         Zahl = Inkey()                                     '
         If Zahl <> 4 Then S = S + Chr(zahl) 
'Nachkontrolle '<> 4,wenn ja dann erhält S ein weiteres Zeichen
      Wend                                                  'Ende der 
While schleife (endet wenn Zahl = 4)

   Raus:

(...)

Gruss Bill

von Falk B. (falk)


Lesenswert?


von Kay I. (imperator)


Lesenswert?

Du könntest prüfen, ob es irgendwo in Deinem Code Stellen gibt, in denen 
Du Bit-Operationen wie & | ^ oder sonstiges durchführst. Vielleicht geht 
Dein Code noch von 8-Bit aus, muss aber mit weiteren 24Bit klar kommen.
Auch bei Pointer- oder Offset-Operationen hat man schnell den 
ursprünglichen 8-Bit Zahlenraum verlassen, was besonders bei Schleifen 
oder Typ-Umwandlungen zu Problemen führen kann.

von Justus S. (jussa)


Lesenswert?

Kay Imperator schrieb:
> Dein Code noch von 8-Bit aus, muss aber mit weiteren 24Bit klar kommen.
> Auch bei Pointer- oder Offset-Operationen hat man schnell den
> ursprünglichen 8-Bit Zahlenraum verlassen, was besonders bei Schleifen
> oder Typ-Umwandlungen zu Problemen führen kann.

und warum sollte das einen Unterschied zwischen mega8 und mega32 sein?

von Bill (Gast)


Lesenswert?

Hallo...

@ Falk... ich habe mir die Hilfestellung angeschaut und jeden Punkt 
nachgeschaut... mir fällt nichts auf , was ich falsch gemacht haben 
könnte...

@Kay... ich verstehe nicht genau was du damit sagen möchtest...könntest 
du das nicht ein bisschen genauer erklären? dann hätten wir alle was 
davon... Vielen Dank im Vorraus...

von Oliver (Gast)


Lesenswert?

Kay Imperator schrieb:
> Vielleicht geht
>
> Dein Code noch von 8-Bit aus, muss aber mit weiteren 24Bit klar kommen.

Nun ja, auch wenn sein neuer Prozessor Mega32 heisst, ist er doch ein 
8-bitter.

Oliver

von Falk B. (falk)


Lesenswert?

@  Bill (Gast)

>@ Falk... ich habe mir die Hilfestellung angeschaut und jeden Punkt
>nachgeschaut... mir fällt nichts auf , was ich falsch gemacht haben
>könnte...

Nicht nachschauen, PRÜFEN!!!

von Bill (Gast)


Lesenswert?

Hallo... ich glaube jetzt das es an meinem externen Quarz liegt...
ich habe einen von 3,686400 MHz,und denke das icht den externen Quarz 
niht aktiviert habe... da ich den ATMega 32 über das Mk2 prog Board 
programiere kann ich mit den myAVR Tools arbeiten... Da habe ich eben 
versucht die Fuses Bits umzustellen (über das progtool)und dann ging auf 
einmal gar nichts mehr... jedoch habe ich durch die "Rettung" es 
geschaft das IC auf die Standarteinstellungen zurückzusetzen...jetzt 
wollte ich mal fragen ob sich jemand damit auskennt und mir vielleicht 
sagen kann welchen Oszillator (Quartz) ich da wählen muss...

Vielen Dank im Vorraus...

Gruss Bill

von Bill (Gast)


Lesenswert?

Bill schrieb:
> welchen Oszillator (Quartz) ich da wählen muss...

also ich meine welche "Option" ich da anklicken muss...damit mein µP mit 
3,6864 MHz arbeitet...

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.