PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega8 mit Startproblem



manfred.pignitter
10.01.2006, 12:48
Hallo!

Habe ein Problem mit einem atmega8 programmiert mit Bascom. Nach dem einschalten schaltet mir mein Controller willkürlich für einen kurzen augenblick meine Ports auf high, danach beginnt das programm erst zu laufen und funktioniert auch einwandfrei. Habe ich aber meine Verbraucher (Motoren, Dosierspulen, Heizung ect.) angeschlossen ist das beim einschalten ein kleines Problem.
wenn irgendjemand Lösungsvorschläge hat, wie ich meine Ports am Anfang sperren kann o.ä. wäre ich für Lösungen sehr dankbar da ich noch sehr wenig Erfahrung mit Controllern habe.

Danke für Eure Hilfe
mandi

Ratber
10.01.2006, 13:29
Hast du deine Portdefinitionen nochmal überprüft ?

Kann ja sein das du alles auf ausgang schaltest bevor das Programm losgeht.

Andree-HB
10.01.2006, 16:50
Hmm, hast Du vielleicht den Pin1 (C.6) in den Fusebits anstatt Reset auf PortPin gesetzt oder evtl. falsch beschaltet ?

Denke, beim Reset/der Initialisierung liegt Dein Problem !

Ratber
10.01.2006, 19:41
Hmm, hast Du vielleicht den Pin1 (C.6) in den Fusebits anstatt Reset auf PortPin gesetzt oder evtl. falsch beschaltet ?

Ich habe das so interpretiert das er sein Programm noch übertragen kann also muß der Reset noch da sein.

Mal schauen was er sagt.

DerWarze
10.01.2006, 21:32
Hallo

Das liegt einfach daran das unmittelbar nach Start/Reset ja noch keine Portzuordnungen abgearbeitet sind und so der Controller seinen 'Urzustand' hat und da sind bei den meisten die Ports auf H da die internen Pullupwiderstände auf ein stehen. Meist stört das nicht weiter wenn doch, hilft nur die Ansteuerung der entsprechen Geräte geschickt auszulegen auszulegen. Im Elektor war vor kurzer Zeit (weis jetzt nicht das Heft, glaube es war November 2005) ein ausführlicher Beitrag zu diesem Problem.

darwin.nuernberg
10.01.2006, 22:27
Würde es eventuell helfen dass man die Ports Aktiv Low verwendet?
Ist doch bei vielen Anwendungen so.

Ich meine z.B. dass der Motor bei Low Läuft.

Wird ein Reset ausgeführt, kann der Port noch so Hi sein wie er will,
die eigentliche Portinitialisierung dürfte so schnell sein,
dass der Motor garkeine Zeit hat auch nur zu zucken.

Dann würde ein Inverter vor dem Motor reichen oder gleich den Motortreiber entsprechend aufbauen.

Ratber
10.01.2006, 22:34
Hallo

Das liegt einfach daran das unmittelbar nach Start/Reset ja noch keine Portzuordnungen abgearbeitet sind und so der Controller seinen 'Urzustand' hat und da sind bei den meisten die Ports auf H da die internen Pullupwiderstände auf ein stehen. Meist stört das nicht weiter wenn doch, hilft nur die Ansteuerung der entsprechen Geräte geschickt auszulegen auszulegen. Im Elektor war vor kurzer Zeit (weis jetzt nicht das Heft, glaube es war November 2005) ein ausführlicher Beitrag zu diesem Problem.

Schau mal ins Datenblatt fürmn M8.


Alle Datenrichtungsregister sind beim Reset auf 0 also alle Ports auf Eingang und die Pullups sind abgeschaltet.
Zusätzlich bin ich ja ein Mensch der nur glsaiubt was er sieht also hab ich mal eben nen M8 innen Steckbrett gestöpselt und die Ports abgeklappert.
Is so wies sein soll.

Ebenso bei anderen die momentan "in der Mache sind"


Ein Reset kann also nicht dafür verantwortlich sein.
Wenn überhaupt dann sind die Ports nur mikrosekunden in dem Zustand aber nicht solange das man es merkt.


Ja und was die Elektor die letzten jahre so schreibt geht mir am Heck vorbei denn bei denen kommt immer mehr nur Unsinn bei rum.
Da hat doch letztes Jahr einer behauptet das ein SCSI-Gerät mit 3er Dipschalter nur die Adressen 1,2 und 4 kennt.
super Spezi war das.
Ja oder die Super anleitung für Weihnachtsbeleuchtung in der Novemberausgabe (oder Dezember.Die wo der Controller beilag) die jedem Elektrikter Pipi inne augen treibt.

Sorry aber die Elektor kannste mittlerweile knicken.



Edit:
Hab mal wieder zu lange getippert.Darwin war schneller