PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RS232 Ausgabe + Pollin Evaluation Board



oratus sum
05.10.2008, 11:49
Hallo.

Ich habe erflogreich mein Pollin Evaluation Board zusammengelötet.

Natürlich habe ich das Ding auch gleich testen wollen und einen Atmega16 aufgesteckt.

Übertragung des Programmes funktioniert einwandfrei, auch das Programm funktioniert einwandfrei, bis auf die serielle Schnittstelle.

Wenn ich das Terminalfenster öffne, den Taster 3 drücke, müsste über RS232 das geschickt werden:


Atmel-Evaluation-Board

Allerdings bekomme ich nur:

üÌfžfÏpf†fÌœfðžffð~†žþ
žøžæ†Ìfð†øx怘€ÌfžfÏp
f†fÌfðžffð~†žþžøžæ†Ìf

Ich dachte mir, dass das nach einer falschen BaudRate aussieht, also habe ich:

$baud = "9600"
Davor gesetzt.

Dann sendet er mir garnichts.

Hier das Programm:


'--------------------------------------------------------------------------'
' 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 '
' '
'--------------------------------------------------------------------------'
$sim
$regfile = "m16def.dat" 'definieren des verwendeten Chips

$crystal = 8000000 '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ü


Kann es vielleicht daran liegen, dass ich statt 9V AC, 9V DC verwende?

Besserwessi
05.10.2008, 12:40
An der Spannungsversorgung wird das nicht leigen. Die vermutung mit einer falschen Baudrate würde ich auch unterstützen. Sind denn die Fuses richtig gesetzt, das der Quarz auch benutzt wird ? Sonst wird weiter der interne Oszillator mit ca. 1 MHz benutzt. Mit etwas Glück könnte man dann etwa bei 1200 Baud die Meldung lesen können.

Che Guevara
05.10.2008, 12:53
hallo,

wenn ich dich richtig verstehe, hast du das obige prog so, wie es hiersteht übertragen?!?!

ich habe nämlich einen fehler entdeckt:

du hast $sim in dem prog stehen, dieses "verändert" dein prog ein "bischen"...
mach das mal raus, dann müssts hinhaun ;-)

gruß
chris

MDKMurdoc
05.10.2008, 13:02
Schau dir mal bitte den Thread an. Ich hatte das Porblem. bei mir waren die Fuses Bits falsch eingestellt.

https://www.roboternetz.de/phpBB2/viewtopic.php?t=43354

MFG

Mario