Schau mal da, vielleicht hilft es
https://www.roboternetz.de/wiki/pmwi...sComVergleich1
Ich hab auch ein Problem mit dem Print-Befehl... ja ich habe schon im Forum gesucht, aber nichts vernünftiges gefunden.
Der Atmega16 ist wie folgt programmiert:
Nunja, ich versuche nun mit dem Windows Terminal das zu empfangen, was über die serielle Schnittstelle gesendet wird. Aber anstatt des Zeichens bekomme ich 01111111 bzw. Dezimal 127 zurück (das Zeichen sieht aus, wie nen Haus).Code:$regfile = "m16def.dat" 'Deklarationen für den ATmega16 $crystal = 1600000 'Interner RC-Oszillator mit 1 MHz $baud = 9600 'UART-Baudrate: 9600 Baud Anfang: Printbin &B00000001 Waitms 1000 Goto Anfang
Kann mir jemand sagen, was ich falsch mache?
Mein Grund Gedanke war eigentlich, dass ich das, was an den MicroController gesendet wird, wieder zurück an den PC sende... Das hatte ich nach einem Beispiel wie folgt versucht:
Kann mir jemand bei der Lösung des Problems helfen?`Code:$regfile = "m16def.dat" 'Deklarationen für den ATmega16 $crystal = 1000000 'Interner RC-Oszillator mit 1 MHz $baud = 9600 'UART-Baudrate: 9600 Baud Onrxd: 'EIN Zeichen ist in der UART eingetroffen Printbin udr Return
Vielen Dank.
cu
Karlja
Schau mal da, vielleicht hilft es
https://www.roboternetz.de/wiki/pmwi...sComVergleich1
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Also, auf den folgenden Code:
gibt es als Antwort im Windows Terminal ein schickes Dreieck bzw. Dezimalwert 31... das hat mich also nicht wirklich weitergebracht.Code:$regfile = "m16def.dat" 'Deklarationen für den ATmega16 $crystal = 1600000 'Interner RC-Oszillator mit 1 MHz $baud = 9600 'UART-Baudrate: 9600 Baud Print "Hello, world !" End
Woher weiß ich eigentlich den Wert für $crystal=... ?
cu
Karlja
Falscher Takt!!!!!
Hast den internen RC-Oszi laufen, oder??
Im Kommentar heißt es "Interner RC-Oszillator mit 1 MHz"
Einfach von der Hilfe kopieren geht natürlich nicht!!
Dann musst crystal=1000000 setzen!!
MFG
Bertl
Habe beides ausprobiert und für den ATMega16 heißt es 0 - 16 Mhz Taktrate... womit ich also beides nutzen können müsste.
Aber auch mit $crystal=16000000 funktioniert es bei mir nicht.
Danke für den Tip.
cu
Karlja
Hast du die Fuses eingestellt???
Ähm... so lange arbeite ich noch nicht mit MicroControllern... könnte ich zu dem Fuses einstellen eine kleine Erklärung bekommen? Sorry.
Hi,
mit den Fuses stellst du zB. ein, ab der AVR mit internem Takt (und da mit welcher Frequenz) , externem Takt (nicht einstellen!) oder mit einem Quarz arbeitet. Wenn der AVR einen Quarz hat , steht aber auf "intern" , dann geht natürlich nix, weil Bascom dann die Baudraten falsch brechnet.
Also erst mal gucken, welche interne Quarzfrequenz bei dir eingestellt ist.
Im Auslieferungszustand sind die AVRs auf internen Takt eingestellt.
Mußt mal gucken, wie man bei deinem Programmer die Fuses einstellen kann.
Externer Takt deshalb nicht, da man sonst einen externen Quarzoszillator anschliessen muß, damit er funktioniert (und programmiert werdern kann).
Es gibt auch noch jede Menge andere Fuses (größe des Bootsektors usw.)
Gruß
Christopher
Achso...
wie bekomme ich denn die Interne QuarzFrequenz heraus.
Und programmieren tu ich das mit Bascom...
cu
Karlja
Lesezeichen