PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe bei Pollin Board



fiatx
29.12.2008, 23:12
Hallo habe dass Pollin Board aber die RS232 funktioniert nicht wennn ich diese Testprogramm laufen lasse

'--------------------------------------------------------------------------'
' 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

Gento
29.12.2008, 23:54
Diese Zeile mal genauer lesen : $crystal

Gento

cipher
30.12.2008, 08:26
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

fiatx
30.12.2008, 08:58
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

fiatx
30.12.2008, 09:50
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.


'--------------------------------------------------------------------------'
' 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

guenter1604
30.12.2008, 09:53
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

fiatx
30.12.2008, 10:43
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

guenter1604
30.12.2008, 11:06
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

magic33
30.12.2008, 13:11
ich arbeite immer mit der Microsoft $baud=19600 damit gehts dann flotter
bei 4Mhz die auch mein STK500 als Schnittstelle hat

fiatx
30.12.2008, 15:34
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