www.mikrocontroller.net

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


Autor: Bill (Gast)
Datum:

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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Kay I. (imperator)
Datum:

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

Autor: Justus Skorps (jussa)
Datum:

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

Autor: Bill (Gast)
Datum:

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

Autor: Oliver (Gast)
Datum:

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

Autor: Falk Brunner (falk)
Datum:

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

Autor: Bill (Gast)
Datum:

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

Autor: Bill (Gast)
Datum:

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

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.