PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Micro PCB will nicht...



JensB
19.09.2006, 13:10
Es ist zum verzweifeln.
Nachdem nun endlich deer Download des Programms geht, läßt sich das geladene Programm nicht ausführen. Port 3 liegt dabei trotzdem auf High pegel. was kanns sein.

Meine Anwendung: Micro sendet bei logisch 0 an port 5 per RS 232 ein byte an Max232, der wiederum das byte an einen ISM Sender sendet.


leider kommt am empfänger nix an. beim test mit der pc rs232 funzt alles.




Gruß

Jens

Suggarman
19.09.2006, 14:58
Poste doch mal das Programm.

mfg

Stefan

JensB
19.09.2006, 16:13
hab ich inner firma zwar gerade nicht parat, aber ich glaube das auch noch so hinzubekommen:


define Taster port [5] (Taster)
define wert byte (Sendewert)
baud 2400 (Baudrate auf 2400 begrenzt)
# loop
wert = 255
if taster = 1 then put wert else goto loop (ob low oder high....es geht nix)
goto loop
end

Thats it, is halt nur ne testroutine

Dierk
19.09.2006, 18:06
Ich glaube Du hast nur das "r" vor der Baudrateangabe vergessen.
Dabei ist R2400 nur ein Konstante welche nicht der Zahl 2400 entspricht.

baud r2400

JensB
19.09.2006, 19:55
Hallo Dierk,

nach meiner Basic Referrenz ist das "R" nicht mehr notwendig.

Korrektur:

Habe gerade auf der Supportseite nachgesehen, es ist NÖTIG.

Mal sehen, dürfte dann gehen....

Dierk
19.09.2006, 20:11
Ja, zur Info
R2400 = 210

Suggarman
20.09.2006, 07:05
if taster = 1 then put wert else goto loop (ob low oder high....es geht nix)


Versuche mal:

if taster = ON then put wert (der Rest ist nicht nötig)

Bei dieser Abfrage müßte allerdings (unüblichweise) der Port über einen Pulldown (10k) mit Masse verbunden sein und per Taster auf 5V gelegt werden. Hast Du das so geschaltet?

mfg

Stefan

DIE HARD
20.09.2006, 17:49
hab ich inner firma zwar gerade nicht parat, aber ich glaube das auch noch so hinzubekommen:


define Taster port [5] (Taster)
define wert byte (Sendewert)
baud 2400 (Baudrate auf 2400 begrenzt)
# loop
wert = 255
if taster = 1 then put wert else goto loop (ob low oder high....es geht nix)
goto loop
end

Thats it, is halt nur ne testroutine

Hallo....
Guck mal, warum probierst du nicht erst mal die Demos zur MICRO.
Du könntest dir damit viel Zeit sparen. Da stehen nämlich wichtige
Sachen:
' Um die Schnittstelle zu aktivieren muss zuerst die Baudrate definiert werden.
' BAUD 9600 oder BAUD 19200 (andere Baudraten weden nicht berücksichtigt)
' Damit wird der PORT gleichzeitig als OUTPUT geschaltet



'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIII
'IIII BASIC++ DEMO ZUM C-CONTROL MICRO IIIIIIIIIIII
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIII
' CONRAD ELECRONIC 9.03 (by DIE HARD)
'
'-----------------------------------------------------------------------
' THEMA: DIGITALPORTS ALS SERIELLE SCHNITTSTELLE
' PUT
' GET
'-----------------------------------------------------------------------
' Beispiel zur C-Control MICRO mit dem Programmer/Application-Board (P/A-BOARD)
' Die C-Control MICRO hat sechs Ports die, auch innerhalb eines Programms,
' verschiedene Funktionen erfüllen. Der Port 1 kann als TXD einer seriellen
' Schnittstelle dienen. Port 2 ist für den Datenempfang, also RXD.
' Auf dem P/E-BOARD ist der Port 1 u. 2 Bereits mit dem richtigen Pin des
' Schnittstellensteckers verbunden.
'
' Starten Sie ein Terminalprogramm und sehen Sie wie die C-Control MICRO
' getippte Buchstaben als Echo zurück schickt.
' Um die Schnittstelle zu aktivieren muss zuerst die Baudrate definiert werden.
' BAUD 9600 oder BAUD 19200 (andere Baudraten weden nicht berücksichtigt)
' Damit wird der PORT gleichzeitig als OUTPUT geschaltet
' RXDATA (Port 2) kann Daten nur empfangen, wenn er INPUT ist. Verwenden Sie DEACT wenn
' der Port vorher als Ausgang benutzt wurde
' Die Schnittstellenfunktion von TXDATA (Port 1) schalten Sie mit DEACT ab.
'-------------------------------------------------------------------------
' Achtung !
' Das P/E-Board unterstützt 19200 Baud aus technischen Gründen nicht
' (Zeitkonstanten im Pegelwandler)
' Wenn sie das bei P/E Board bei empfangsbereiten Terminalprogramm einschalten,
' werden einige "wirre" Zeichen angezeigt, da sich die Betriebsspannung
' erst stabilisieren muss.
'------------------------------------------------------------------------

'--------------------------
'------ I/O PORTS ---------
'--------------------------
define LED port[5]
define TASTER port[3]
define TXDATA port[1]
define RXDATA port[2]
'--------------------------
'---- SYSTEM MEMORY -------
'--------------------------
define DATA byte[1]

BAUD R9600
pause 10

'--------------------------------------------------
' USING PORT1 AS SERIAL OUTPUT -
'--------------------------------------------------
print " WIR SENDEN ECHOS"
PRINT "- BITTE SCHREIBEN SIE -"
#WAIT
get DATA
put DATA
goto WAIT

JensB
21.09.2006, 12:15
Also, hab mal noch das ganze per PC RS232 gegengechecked, die Micro sendet!
Aber: Das die Micro nur die Baudraten9600 und 19200 unterstützt habe ich in keiner Doku von Conrad gefunden. Dann würde sich auch erklären warum meine Funkübertragung nicht funzt, der Sender unterstützt nur 2400 Baud. Kann man die Baudrate nicht per Assembler oder so reduzieren? Oder gibt es eine Schaltungslösung dafür?

PS: Das R ist nicht notwendig, habe es nochmal probiert und es klappt auch ohne R (Baudrate)

Gruß Jens

DIE HARD
21.09.2006, 13:03
Also, hab mal noch das ganze per PC RS232 gegengechecked, die Micro sendet!
Aber: Das die Micro nur die Baudraten9600 und 19200 unterstützt habe ich in keiner Doku von Conrad gefunden. Dann würde sich auch erklären warum meine Funkübertragung nicht funzt, der Sender unterstützt nur 2400 Baud. Kann man die Baudrate nicht per Assembler oder so reduzieren? Oder gibt es eine Schaltungslösung dafür?

PS: Das R ist nicht notwendig, habe es nochmal probiert und es klappt auch ohne R (Baudrate)

Gruß Jens

BAUD ist im Manual auf Seite 32 beschrieben, ausserdem bei den Beispielen
zu den einzelnen Befehlen.
Die Micro sollte schnell genug sein, die 2400 Baud mit einem kleinen
BASIC Programm zu erzeugen

JensB
21.09.2006, 15:14
Die Hard hat geschrieben:
Um die Schnittstelle zu aktivieren muss zuerst die Baudrate definiert werden.
BAUD 9600 oder BAUD 19200 (andere Baudraten weden nicht berücksichtigt)


Wenn dem so ist, dann kann das nicht funzen, weil die Micro zu schnell für das Funkmodul ist. Habe die 2400 Baud im Code zwar angegeben, aber wenn die Micro dies nicht berücksichtigt bringt mir das doch nix weil sie dann immer schneller die Daten sendet, als das Funkmodul sie aufnehmen kann. Bliebe höchstens eine Emulation über einen Port, wobei ich mir da noch mal die Timingverhältnisse ansehen.

Ein Anruf bei der Conrad Hotline ergab, daß angeblich die minimale Geschwindigkeit wirklich 9600 Baud sind. Aber der Hotline glaube ich irgendwie mal gar nix mehr, da wurde mir schon so oft Schund erzählt.

DIE HARD
21.09.2006, 17:38
Die Hard hat geschrieben:
Um die Schnittstelle zu aktivieren muss zuerst die Baudrate definiert werden.
BAUD 9600 oder BAUD 19200 (andere Baudraten weden nicht berücksichtigt)


Wenn dem so ist, dann kann das nicht funzen, weil die Micro zu schnell für das Funkmodul ist. Habe die 2400 Baud im Code zwar angegeben, aber wenn die Micro dies nicht berücksichtigt bringt mir das doch nix weil sie dann immer schneller die Daten sendet, als das Funkmodul sie aufnehmen kann. Bliebe höchstens eine Emulation über einen Port, wobei ich mir da noch mal die Timingverhältnisse ansehen.

Ein Anruf bei der Conrad Hotline ergab, daß angeblich die minimale Geschwindigkeit wirklich 9600 Baud sind. Aber der Hotline glaube ich irgendwie mal gar nix mehr, da wurde mir schon so oft Schund erzählt.

Wie ich dir bereits sagte ----> GUCK INS MANUAL
Und wenn du das nicht glaubst, dann glaube wenigstens mir.
Ich habe das OS geschrieben.
Aber es gibt einen Trick. Die MICRO calibriert ihre Baudrate beim
Programm-Download. ---> Bei einem Download mit 2400 ist auch die
default-Baudrate 2400.
Frag mal im Forum ob das Downloadtool von CSSLABS/WORKBENCH das kann. Ich glaub nämlich schon.

http://www.tappertzhofen.eu/bpp2

JensB
21.09.2006, 18:24
Hallo Die Hard,
nicht genervt sein, ich bin es nämlich schon, also nochmal das Ganze....

Du sagst die Micro kann 2400 Baud, wenn der Pc eine eingestellte Baudrate von 2400 hat kalibriet sie sich selbst beim Download eines Programms auf 2400. Ist diese Aussage so richtig?

Kleine Frage: Macht das nur der Downloader von Workbench? Ich nutze Sowohl Basic++, als auch Workbench++. Wenn der Basic++ Downloader nicht kalibriert, würde dies einiges erklären...

PS: Manual habe ich gelesen, genau wie das des PE - boards und ganz unbedarft in Sachen Elektronik und µC´s bin ich auch nicht, kam nämlich so rüber...

Trotzdem fG
Jens

DIE HARD
21.09.2006, 19:30
Hallo Die Hard,
nicht genervt sein, ich bin es nämlich schon, also nochmal das Ganze....

Du sagst die Micro kann 2400 Baud, wenn der Pc eine eingestellte Baudrate von 2400 hat kalibriet sie sich selbst beim Download eines Programms auf 2400. Ist diese Aussage so richtig?
Richtig. Hab ich noch nie ausprobiert aber es sollte so sein.
---> ausprobieren mit dem Hyperterminal. Evtl zuerst mal mit 4800


Kleine Frage: Macht das nur der Downloader von Workbench? Ich nutze Sowohl Basic++, als auch Workbench++. Wenn der Basic++ Downloader nicht kalibriert, würde dies einiges erklären...
Wenn sich BASIC++ auf 2400 einstellen lässt und der Download auch
wirklich mit 2400 erfolgt, dann geht das natürlich auch.

JensB
21.09.2006, 20:33
Danke erstmal für die schwierige Geburt. Jetz will der Downloader nicht mehr laden, da er keine Micro findet, denke für die Anwendung dann doch eher nen Atmel nehmen, der is eh billiger. Nix dagegen, daß Du das OS geschrieben hast, im Übrigen zolle ich meinen Respekt davor.

Danke für die Bemühungen

Jens