Autor |
Total Ratlos: Controller läuft nicht Suche nach: controller (3541) |
|
|
|
|
BID = 360661
Jornbyte Moderator
Beiträge: 7089
|
|
nur stimmt da diese Aussage nicht:
Zitat :
| und in den High-Fuses ist der Pin auch als Reset Konfiguriert und nicht als I/O Pin |
die würde nur für den Tiny2313 gelten.
Wnn es ein 90S2313 ist fehlt noch ein C (1µ) gegen Masse.
Der Widerstand sollte da 10K haben.
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten. |
|
BID = 360677
robodriver Stammposter
Beiträge: 217
|
|
Ja, sorry,
das hat ich durcheinander gehauen, weil ich vorher die High-Fuses bei dem Mega8 am Wickel hatte...
Sorry, ist definitiv ein AT90S2313
So, den Kondensator zwischen Reset und Masse hab ich nun auch noch eingefügt.
Hat sich allerdings nichts weiter verändert.
Hab den die Zeit mittlerweile auch mal auf 500 µS runter gesetzt und 10 Minuten gewartet. Allerdings ohne jegliche Veränderung.
Jetzt hab ich das Programm so umgeschrieben:
Code : |
$regfile = "2313def.dat"
$crystal = 8000000
'DDR = &B76543210 ; 0=Eingang ; 1=Ausgang
Ddrb = &B11111111
Ddrd = &B11101111
Portb = &B01000000
Portd = &B01000001
Portb = 64
Portb = 8
Portb = 16
Portb = 104
Portb = 0
Portb = 80
Portb = 96
Do
Waitus 500
Portb = 64
Waitus 500
Portb = 8
Waitus 500
Portb = 16
Waitus 500
Portb = 104
Waitus 500
Portb = 0
Waitus 500
Portb = 80
Waitus 500
Portb = 96
Loop
End
|
|
Ergebnis:
PortB hat nach dem Einschalten immer einen anderen Zustand.
am häufigsten aber 96.
des ist sehr komisch...
Also ich vermute mal, das der irgendwie nur die ersten paar Zeilen des Codes ausführt und dann stehen bleibt.
Aber warum?
(Denkt dran: ich habe jetzt einen separaten Takt für den uC) |
|
BID = 360693
Jornbyte Moderator
Beiträge: 7089
|
Zitat :
| $crystal = 8000000 |
$crystal = 4000000 <------
Zitat :
| Portb = 64
Portb = 8
Portb = 16
Portb = 104
Portb = 0
Portb = 80
Portb = 96 |
Wozu ist das gut?
Zitat :
| Portb = &B01000000 |
Damit wird nur für Pin 6 der interne Widerstand eingeschaltet. Warum?
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
BID = 360698
robodriver Stammposter
Beiträge: 217
|
ja, also das jetzt crystal auf 8000000 gesetzt ist liegt daran, das der uC jetzt halt seinen eigenen Takt hat und des ist jetzt ein 8 MHz Quarz (was andere hat ich grad nicht da, aber der Controller kann 0-10MHz)
PortB = &B01000000 hab ich nur gemacht, damit beim einschalten nur Pin 6 auf High ist und alle anderen Low.
das mit dem Widerstand verwirrt mich jetzt etwas.
Ist nicht
PortB = &B01000000
das selbe wie
PortB = 64
?
|
BID = 360704
Jornbyte Moderator
Beiträge: 7089
|
Das ist doch mit
Zitat :
| Ddrb = &B11111111 |
alles auf Eingang ??
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
BID = 360705
robodriver Stammposter
Beiträge: 217
|
Nene, eins steht für Ausgang
Definitiv. Habs grad auch nochmal im Datenblatt nachgelesen (Seite 51 stehts)
|
BID = 360725
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Poste ml Schaltplan und komplettes Programm bitte. Schaltplan wirklich exakt!!
Hast du die System Clock Source-Fusebits richtig gesetzt?
Kann es sein, dass du beim Versuchen, die Taktquelle zu wählen, Lockbits geschrieben hast? Programmierst du über Ponyprog? Wenn ja, dann ist vermutlich dein Chip i.A. (weil unbrauchbar wg. gesetzten Lockbits, die werden beim Pferdchenprogrammierer invertiert dargestellt.)
_________________
|
BID = 360735
robodriver Stammposter
Beiträge: 217
|
Also das es an den Fusebits oder Lockbits liegt wage ich zu bezweifeln, weil der Chip wie gesagt auf einer anderen Schaltung mit einem anderen Programm einwandfrei lief.
und wenn der uC wirklich aufgrund der System-Clock einstellungen i.A. währe, dann würde er gar nix mehr sagen... (hatte ich schon 2 mal gechafft) und würde auch nicht mehr die ersten paar Zeilen des Programmes ausführen
|
BID = 360944
clembra Inventar
Beiträge: 5404 Wohnort: Weeze / Niederrhein
|
Vielleicht steht der ja noch irgendwie auf externer Takt und reagiert auf Hochfrequenzen???
Ansonsten, hast du eigentlich ein Oszi als Messgerät oder wie machst du das?
Aber gerade für solche Angaben würd ich nur entweder Binär oder Hexadezimal-Schreibweise verwenden (aber jedem das Seine )
Im übrigen solltest du die ganzen Port=??-Anweisungen kurz hintereinander entfernen (bis auf die letzte, versteht sich)
Wenn es doch am Programm liegen sollte, könntest du mal, die Assembler-Datei (bzw. die hex-Datei) hochladen?.
_________________
Reboot oder be root, das ist hier die Frage.
|
BID = 360953
robodriver Stammposter
Beiträge: 217
|
So ok, also das ganze Thema hat sich jetzt erledigt
Ich hatte die Nase einfach voll und hab jetzt anstelle des AT90S2313 einen ATMega8 eingesetzt. Der ist zwar jetzt nur zu 5% belegt und auch die hälfte der Pins stehen über die Platine heraus weil gar kein Platz für den ist...
ABER: So funktioniert es wenigstens
Trotzdem vielen Dank an diejenigen die mir hier versucht haben weiter zu helfen
:super
|