-
        

Ergebnis 1 bis 10 von 10

Thema: Hilfe bei Pollin Board

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    03.12.2008
    Ort
    Lauda
    Alter
    34
    Beiträge
    95

    Hilfe bei Pollin Board

    Anzeige

    Hallo habe dass Pollin Board aber die RS232 funktioniert nicht wennn ich diese Testprogramm laufen lasse
    Code:
    '--------------------------------------------------------------------------'
    '                        Testtool.bas                                      '
    '                   2006 ,Pollin Electronic                                '
    '                          Freeware                                        '
    '--------------------------------------------------------------------------'
    '                                                                          '
    'Pollin Electronic Atmel-Evaluation-Board                                  '
    'Bestellnummer: 810022                                                     '
    'Testprogramm für ATmega16                                                 '
    'Der gesendete Text kann mit dem Hyperterminal von Windows angezeigt werden'                                                               '
    'Einstellungen am Hyperterminal:                                           '
    '              Bits pro sekunde:   9600                                    '
    '              Datenbits       :      8                                    '
    '              Parität         :  keine                                    '
    '              Stoppbits       :      1                                    '
    '              Flusssteuerung  :  keine                                    '
    '                                                                          '
    '--------------------------------------------------------------------------'
    
    $regfile = "m8def.dat"
    
    $crystal = 1000000                                          'definieren des verwendeten externen Quarz (8MHz)
    Baud = 9600
    
    Dim A As Byte                                               'dimensionieren der verwendeten Variablen
    Dim B As Byte
    
    Ddrd = &B11100000                                           'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang)
    Portd = &B00000000                                          'definieren der einzelnen Pins an einem Port ( 0= low level; 1= high level)
    
    
    Main:                                                       'Hauptprogramm
    Do                                                          'Anfang der Schleife
    
      If Pind.2 = 1 Then                                        'Wenn an Pin 2 von Port D ein high level anliegt, dann...
    
      Toggle Portd.5                                            '...setze Pin 5 von Port D von high auf low oder umgekehrt
      Bitwait Pind.2 , Reset                                    'warte bis an Pin 2 von Port D wieder ein low level anliegt
    
      End If                                                    'Ende der Bedingung
      If Pind.3 = 1 Then                                        'Wenn an Pin 3 von Port D ein high level anliegt, dann...
    
      Toggle Portd.6                                            '...setze Pin 6 von Port D von high auf low oder umgekehrt
      Bitwait Pind.3 , Reset                                    'warte bis an Pin 3 von Port D wieder ein low level anliegt
    
      End If                                                    'Ende der Bedingung
      If Pind.4 = 1 Then                                        'Wenn an Pin 2 von Port D ein high level anliegt, dann...
    
      Gosub Beep                                                '...gehe zum Untermenü "Beep"
      Gosub Textausgabe                                         '...gehe zum Untermenü "Textausgabe"
      Bitwait Pind.4 , Reset                                    'warte bis an Pin 4 von Port D wieder ein low level anliegt
    
      End If                                                    'Ende der Bendingung
    Print "Hallo"
    
    Loop                                                        'zum Anfang der Schleife
    
    Beep:                                                       'Untermenü "Beep"
    
      Portd.7 = 1                                               'setzte den Pin 7 von Port D auf high
      Waitms 500                                                'Warte 500 ms
      Portd.7 = 0                                               'setzt den Pin 7 von Port D auf low
    
    Return                                                      'zurück zum Hauptmenü
    
    Textausgabe:                                                'Untermenü "Textausgabe"
    
      Print "Atmel-Evaluation-Board"                            'Sende den Text in den Anführungszeichen über RS232 zum PC
    
    Return                                                      'zurück zum Hauptmenü

    Kommt im Terminal nur Müll an

    Habe Com2 eingestellt und 8N1 jetzt weis ich nicht ob mein Programm falsch ist oder ich im Terminal was falsches stehen habe oder was da los ist.

    Als Kabel benutze ich ein Com 1:1 beschaltet dass ich zum Flashen in Pony Prog auch benutze und dass Funktioniert.

    Gruß Sven

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.09.2005
    Beiträge
    276
    Diese Zeile mal genauer lesen : $crystal

    Gento

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    21.07.2008
    Ort
    Moosburg
    Alter
    39
    Beiträge
    49
    Hi!

    Stimmt die Einstellung der seriellen Schnittstelle bezogen auf den Systemtakt? Standardmässig verwenden die AVRs einen internen RC-Oszillator mit 1MHz. Der ist jedoch wegen Temperatur- und Spannungsabhängigkeit für die serielle Schnittstelle nur bedingt bis überhaupt nicht zu gebrauchen. Am Besten an den AVR einen externen Quarz dran und die Fuse-Bits entsprechend einstellen.

    Gruß,

    Markus

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    03.12.2008
    Ort
    Lauda
    Alter
    34
    Beiträge
    95
    Die Fuse Bits sind noch auf Interner Takt ein gestellt.

    Ich komme mit der Anleitung nicht so ganz klar was ich in den Fuse Bits, in Pony Prog, einstellen muss um den externen 8 MHZ Quarz zu aktivieren.

    Könnte mir einer das mal erklären.


    Danke Sven

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    03.12.2008
    Ort
    Lauda
    Alter
    34
    Beiträge
    95
    Hallo

    So konnte das Problem lösen, habe die Fuse Bits setzten können und naja den Plan falsch gelesen war ein 16 Mhz Quarz.

    Code:
    '--------------------------------------------------------------------------'
    '                        Testtool.bas                                      '
    '                   2006 ,Pollin Electronic                                '
    '                          Freeware                                        '
    '--------------------------------------------------------------------------'
    '                                                                          '
    'Pollin Electronic Atmel-Evaluation-Board                                  '
    'Bestellnummer: 810022                                                     '
    'Testprogramm für ATmega16                                                 '
    'Der gesendete Text kann mit dem Hyperterminal von Windows angezeigt werden'                                                               '
    'Einstellungen am Hyperterminal:                                           '
    '              Bits pro sekunde:   9600                                    '
    '              Datenbits       :      8                                    '
    '              Parität         :  keine                                    '
    '              Stoppbits       :      1                                    '
    '              Flusssteuerung  :  keine                                    '
    '                                                                          '
    '--------------------------------------------------------------------------'
    
    $regfile = "m8def.dat"
    
    $crystal = 16000000                                         'definieren des verwendeten externen Quarz (8MHz)
    Baud = 9600
    
    Dim A As Byte                                               'dimensionieren der verwendeten Variablen
    Dim B As Byte
    
    Ddrd = &B11100000                                           'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang)
    Portd = &B00000000                                          'definieren der einzelnen Pins an einem Port ( 0= low level; 1= high level)
    
    
    Main:                                                       'Hauptprogramm
    Do                                                          'Anfang der Schleife
    
      If Pind.2 = 1 Then                                        'Wenn an Pin 2 von Port D ein high level anliegt, dann...
    
      Toggle Portd.5                                            '...setze Pin 5 von Port D von high auf low oder umgekehrt
      Bitwait Pind.2 , Reset                                    'warte bis an Pin 2 von Port D wieder ein low level anliegt
    
      End If                                                    'Ende der Bedingung
      If Pind.3 = 1 Then                                        'Wenn an Pin 3 von Port D ein high level anliegt, dann...
    
      Toggle Portd.6                                            '...setze Pin 6 von Port D von high auf low oder umgekehrt
      Bitwait Pind.3 , Reset                                    'warte bis an Pin 3 von Port D wieder ein low level anliegt
    
      End If                                                    'Ende der Bedingung
      If Pind.4 = 1 Then                                        'Wenn an Pin 2 von Port D ein high level anliegt, dann...
    
      Gosub Beep                                                '...gehe zum Untermenü "Beep"
      Gosub Textausgabe                                         '...gehe zum Untermenü "Textausgabe"
      Bitwait Pind.4 , Reset                                    'warte bis an Pin 4 von Port D wieder ein low level anliegt
    
      End If                                                    'Ende der Bendingung
    
    
    Loop                                                        'zum Anfang der Schleife
    
    Beep:                                                       'Untermenü "Beep"
    
      Portd.7 = 1                                               'setzte den Pin 7 von Port D auf high
      Waitms 500                                                'Warte 500 ms
      Portd.7 = 0                                               'setzt den Pin 7 von Port D auf low
    
    Return                                                      'zurück zum Hauptmenü
    
    Textausgabe:                                                'Untermenü "Textausgabe"
    
      Print "Atmel-Evaluation-Board"                            'Sende den Text in den Anführungszeichen über RS232 zum PC
    
    Return                                                      'zurück zum Hauptmenü
    mit diesem Programm läuft es jetzt super Danke

    Ach eins hätte ich noch, wie kann ich verhindern dass nach dem gesendeten Text im Terminal diese Note und as Rechteck mit Kreis kommt


    Gruß Sven

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Hallo Sven,

    mach erstmal aus

    Baud = 9600

    $Baud = 9600

    Da du einen AT-Mega 8 einsetzt, gibt es 2 Möglichkeiten:

    Du hast noch nichts an den Fusebits gedreht, dann läuft der Mega mit internen 1MHz. Da du
    $crystal = 1000000
    eingetragen hast müsste das Dingens dann gehen. Falls du die Fusebits auf externen Oszillator umgestellt hast, ändere
    $crystal = 1000000 auf die Frequenz des Quarzes.

    Günter

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    03.12.2008
    Ort
    Lauda
    Alter
    34
    Beiträge
    95
    Danke habe die Fehler gefunden.

    Habe jetzt auf externen Quarz mit 16000000 Hz und Baud = 9600 auch ohne Dollar und es Funktioniert.

    Danke Gruß Sven

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.05.2007
    Beiträge
    329
    Hallo Sven,

    die Baudrate erst zur Laufzeit zu setzen könnte irgendwann kuriose Fehler erzeugen. Im Manual kannst du dir ja mal den Unterschied von $Baud und Baud zu gemüte führen.

    Günter

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.02.2007
    Beiträge
    210
    ich arbeite immer mit der Microsoft $baud=19600 damit gehts dann flotter
    bei 4Mhz die auch mein STK500 als Schnittstelle hat

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    03.12.2008
    Ort
    Lauda
    Alter
    34
    Beiträge
    95
    Hallo
    habe mein Programm jetzt auf $Baud geändert läuft prima.

    Heute sind auch endlich meine Kleinteile angekommen somit kann ich endlich den Spannungsteiler für mein Messprogramm machen.

    Hoffe ich bekomme dass alles hin Gruß Sven

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •