Autor |
|
|
|
BID = 112391
robodriver Stammposter
Beiträge: 217
|
|
Hallo zusammen,
Ich habe einen AT90S1200 Programmiert.
Das Programm habe ich mit BASCOM geschrieben (Eher von einem AVR-Lehrbuch abgeschrieben) und mit SP12 über LPT auf den µC geschrieben. SP12 hat den µC erkannt, also gehe ich davon aus das es auch das Programm fehlerfrei übertragen hat.
Nur das problem ist: es passiert nichts wenn ich das Programm abspielen will.
Die entsprechenden Pins wurden als Ein-bzw. Ausgang konfiguriert. Reset habe ich erst an GND und dann an Vcc nach einschalten der Spannung gehalten. Einen Quarz mit 4,433619 MHz und 2 22pF Kondies hab ich auch dran.
Aber dennoch funktioniert absolut garnichts.
Bitte helft mir, bin schon am verzweifeln! |
|
BID = 112407
olfi13 Schreibmaschine
Beiträge: 1077 Wohnort: Wittingen
|
|
Hi!
Schlecht drauf zu antworten ohne Schaltung und Programm zu sehen |
|
BID = 112467
Jornbyte Moderator
Beiträge: 7178
|
Bascom unterstützt keine µC die keinen Ram haben. Dazu zählt auch der 1200'er.
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
BID = 112785
robodriver Stammposter
Beiträge: 217
|
Aber der 1200er ist doch bei BASCOM mit Aufgelisted (Man muss doch diese Übersetzungsdatei eingeben und da gibt es direkt für den 1200er eine Datei)
Schaltplan und programm werde ich morgen einstellen.
Überspielen tu ich das Programm aber mit SP12 und das geht aber oder?
|
BID = 113215
robodriver Stammposter
Beiträge: 217
|
OK Also hier nun das Programm:
$regfile = "1200def.dat"
$crystal = 4433619
DDRD = &B01000000
Do
If Pind.5 = 0 Then
Portd.6 = 1
Else
Portd.6 = 0
End If
Loop
End
Schaltplan ist ganz simple:
+5V, GND, Reset wie oben beschrieben, eine LED an PIN6 des Port D und einen Tster der zu GND schaltet an PIN5 des Port D (Als ich diesen Taster mal an +5V geschaltet hab, hat es mir den µC zerhauen)
Also was meint ihr, woran liegt die Fehlfunktion?
|
BID = 113251
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Mach mal ein Pullup-Widerstand an den Eingang PortD.5, oder sorge dafür, daß an PortD.5 eine 1 im Ausgangsregister steht.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 113291
robodriver Stammposter
Beiträge: 217
|
Aber das ich den Pin auf GND schalte ist richtig?
|
BID = 113360
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Dagegen hab ich nichts.
Aber wenn es weder im µC noch extern einen Pullup Widerstand gibt, wie soll dann eine Spannung an dem Pin entstehen.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 113709
robodriver Stammposter
Beiträge: 217
|
also ich hab das Programm jetzt mal so geändert:
$regfile = "1200def.dat"
$crystal = 4433619
Ddrd = &B01000000
Portd = &B00100000
Do
If Pind.5 = 0 Then
Portd.6 = 1
Else
Portd.6 = 0
End If
Loop
End
An PD5 liegen dann auch 5V an und an PD6 0V. Aber auch wenn ich den PD5 an Masse schalte ändert sich an PD6 garnichts.
Das ist doch nicht möglich!?
Hab das gefühl das die DO-LOOP schleife nicht durchlaufen wird. (Reset hängt aber an +5V !)
|
BID = 113976
Midnight Stammposter
Beiträge: 256
|
Warte mal, Du schreibst mit Deinem Programm nur Zustände in die Ports, gibts sie aber nicht an die Pins.
Ersetze bittemal port.6=0 und portd.6=1 durch reset portd.6 und set portd.6.
Gruß
Simon
|
BID = 114051
robodriver Stammposter
Beiträge: 217
|
Das klingt logisch,
aber ich hab erst einmal noch nen anderes Problem:
Hab gestern mal noch nen biserl probiert und dabei auch fuse Bits gesetzt. Das problem ist nur: ich hab "Serial Programming=Disabled" eingestellt. und immer wenn ich den µC per Parallelport ansprechen/programmieren will kommt die meldung: Unidentifizierbares Gerät (natürlich kommts auf englich).
Und das ligt meines erachtens noch an den Fuse-Bits. denn wenn der µC "im Arsch" ist steht "Unknown device".
Bitte sagt schnell, wie kann ich das setzen der Fuse-Bits rückgängig machen??? (selbst read-Fuses oder write Fuses funktioniert nich mehr) Damit ich weiter basteln kann.
|
BID = 114093
. Stammposter
Beiträge: 214 Wohnort: Auf der Alm
|
dbddhkpsav
|
BID = 114095
robodriver Stammposter
Beiträge: 217
|
Was soll das denn???????????
Bitte macht vorschläge die auch praktisch umsetzbar sind.
|
BID = 114379
Midnight Stammposter
Beiträge: 256
|
Dann bleibt Dir nichts mehr übrig, als den µC mit einem "richtigen" Programmer zurück zu setzen.
Auch wenn Dein Programmer am Parallelport hängt hast Du wohl nen ISP Adapter, und der programmiert halt seriell...
Gruß
Simon
|