doch eigentlich schon, hast du die fuses auch mal ausgelesen vorher?
Martin
Druckbare Version
doch eigentlich schon, hast du die fuses auch mal ausgelesen vorher?
Martin
... nein, vorher nicht. Aber im Datenblatt zum Mega16 steht, dass die von Haus aus alle auf 0 (effektiv ja 1) stehen und somit auf interner Taktung (is jetzt nur so eine Vermutung, denn so ganz werd ich ja aus dem Datenblatt nicht schlau).Zitat:
hast du die fuses auch mal ausgelesen vorher?
ja, dann lies mal die fuses aus, und mach die alle aus, also die, die ich gesacht hab, und dann schreib die mal rein
Ich steck auch mal einen fabrikneuen Mega16 rein und versuch die Fuses auszulesen. Mal sehen welche da dann gesetzt oder nicht sind.
...also ausprobieren konnte ich es jetzt leider nicht, aber ich hab mir nochmal das Datenblatt zu gemüte geführt:
Im Auslieferzustand ist CKSEL0 und SUT1 gesetzt. Das entspricht der internen Taktung mit 1MHz.
Für die externe Taktung müssen, so wie du's (x-ryder) beschrieben hast, CKOPT, CHSEL3-0 und SUT1-0 frei (nicht gesetzt - keine Häkchen) bleiben.
Somit habe ich unbewusst schon die richtigen Einstellungen beim ersten Mal programmiert. Auch nicht schlecht.
Jetzt muss ich nur noch das Problem mit den zu übertragenden Zeichen klären.
also, dann machich ma ne checkliste:
- wie lang ist dein kabel?
- hast du den konverter richtig aufgebaut, funktionierte der schonmal?
- was hast du überhaupt für einen?
- hast du den UART richtig definiert im programm? (schicks am besten mal)
- welches terminal benutzt du?
mal sehen, ob mir noch was einfällt, schreib ma erstmal
Martin
...also...
...ca. 1m voll belegtes und geschirmtes RS232 1:1 Kabel...Zitat:
- wie lang ist dein kabel?
...richtig aufgebaut ja, Programmieren geht nur lesen per RS232 eben nicht...Zitat:
- hast du den konverter richtig aufgebaut, funktionierte der schonmal?
...es ist ein Bausatz von www.pollin.de (Art.-Nr.: 810022)...Zitat:
- was hast du überhaupt für einen?
'step2.bas.BASZitat:
- hast du den UART richtig definiert im programm? (schicks am besten mal)
$regfile = "m16def.dat"
$hwstack = 32
$swstack = 8
$framesize = 24
$crystal = 8000000
$baud = 9600
Config Portd.2 = Input
Config Portd.3 = Input
Config Portd.4 = Input
Config Portd.5 = Output
Config Portd.6 = Output
Config Portd.7 = Output
Do
Portd.5 = 1
Portd.6 = 0
Print "LED 1 ein / LED 2 aus"
Waitms 500
If Pind.2 = 1 Then
Portd.7 = 1
Waitms 1
Portd.7 = 0
End If
Portd.5 = 0
Portd.6 = 1
Print "LED 1 aus / LED 2 ein"
Waitms 500
If Pind.2 = 1 Then
Portd.7 = 1
Waitms 1
Portd.7 = 0
End If
Loop
End
...es ist eins von der Buch-CD zu MSR mit Windows, bzw, MSR mit Word und Excel. Verwende ich ein Nullmodem-Kabel und zwei PC's auf denen jeweils das Terminal läuft, tauschen beide Daten ohne Probleme aus. Im Terminal von Bascom zeigt er mir den gleichen Fehler wie im anderen Terminal (die Zahlen leserlich, der Rest Kauderwelsch). Wie sich das Terminal genau nennt müsste ich zuhause nachschauen, dürfte aber nicht weiter relevant sein.Zitat:
- welches terminal benutzt du?
Bernhard.
du solltest es mal testen, wenn du noch ne config reinpaggst:
Code:Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Tja, manchmal sieht man den Wald vor lauter Bäumen nicht: Ich hab gedacht, dass die Fusebits beim Programmieren auch mit gebrannt werden. Dem ist aber nicht so !
Ich hab mir gestern mal den Spaß gemacht, und auf den lesen-Button in den Fusebits gedrückt und siehe da, er hat mir die Werkseinstellungen angezeigt: JTAGEN, BOOTSZ1-0, SUT1 und CKSEL3-1 waren gesetzt. Seit ich die Häckchen überall rausgemacht und auf schreiben geklickt hatte, funktioniert alles wunderbar. Auch die Übertragung per RS232 kommt nun vollständig und leserlich an !!!
Mit der internen Taktung kann er scheinbar die Baudrate nicht 100%tig auflösen.
Na immerhin, jetzt funktionierts (ohne, dass ich den zusätzlichen Code einfügen musste, trotzdem DANKE) !
Gruß, Berni.
ne, das mit der baudrate macht bascom ja durch das $baud= commando, und wenn du jetzt bei $crystal 8MHz angibst, nimmt bascom den wert 8MHz zur berechnung der baudrate, und nicht die internen 1MHz die tastächlich laufen ^^
Martin