Forum: Mikrocontroller und Digitale Elektronik SREG TIMER USART


von Zusammenpacker_Atmega (Gast)


Lesenswert?

Hallo Jungs,

ich bin gerade dabei meine einzelnde Hardware (232, 485,SPI) Timer etc. 
alle zusammen zum spielen zu bekommen :-)

Leider bin ich gerade mal wieder am verzweifeln und wüßte nicht, woran 
es liegen kann. Also:

Ich binde nacheinander immer die Init_HardwareA();
Init_HardwareB();  und letztendlich sei(); IniteinTImer(); 
ein...(beispielhafte Reihenfolge!!)

EInzelnd laufen die auch soweit wunderbar. Allerdings läuft die 
einzelnde Hardware nur, wenn ich immer eine bestimmte Reihenfolge 
einhalte und nicht wenn ich dann z.B die dritte einbinde.Sprich, 
ausgetüftelt dass alle in der richtigen Reihenfolge laufen, habe ich 
nocht nicht hinbekommen!

 Meine Frage, es müßte doch eig. möglich sein, erst alle Einstellungen 
in den enstrpechenden Registern zu setzen und danach(wo es nötig ist!) 
das sei(); zuletzt aufzurufen. oder ?

Atmega2560 und AVR-GCC!

Vielen Dank für Mithilfe :-)

von Johannes M. (johnny-m)


Lesenswert?

Das, was Du da schreibst, kann so vermutlich keiner nachvollziehen, da 
keiner das Programm kennt.

Abgesehen davon ist es tatsächlich Unsinn, vor der 
Hardware-Initialisierung bereits die Interrupt-Bearbeitung global 
freizugeben.

Es heißt im Übrigen "einzeln" ohne "d" am Ende...

von Zusammenpacker_Atmega (Gast)


Lesenswert?

Hi,

danke für die Grammatik-Stunde :-D

Hmm, das habe ich mir schon gedacht, dass es keiner so richtig verstehen 
mag! Also, ich kann leider nicht genau sagen, was ich an Hardware so 
alles habe(da es um ne Dipl-Arbeit mit sperrung geht!).

Ich wollte eig. nur wissen, ob ich Hardwareinitialisierungen in einer 
gewissen Reihenfolge abarbeiten lassen sollte.

Z.B.

1. TImer initialisieren
2. Hardwareschnittstelle A initialisieren
3. Hardwareschnittstelle B initialisieren
4. ....
sei();
oder

1. Hardwareschnittstelle A initialisieren
2. Hardwareschnittstelle B initialisieren
3. TImer initialisieren
4...
sei();

Das sei(); am Ende zu kommen hat, ist mir schon klar :-)

Ich habe bisher keine funktionierende Reihenfolge gefunden :(

greetz

von Johannes M. (johnny-m)


Lesenswert?

Zusammenpacker_Atmega wrote:
> Ich habe bisher keine funktionierende Reihenfolge gefunden :(
Wenn es eine reine Hardware-Initialisierung ist, dann machst Du 
irgendwas falsch. Da wir aber weder die Hardware kennen, noch den 
Quellcode, noch, was die Hardware denn machen soll, wenn sie denn 
funktioniert, noch, wie es sich ausdrückt, dass es nicht funktioniert, 
kann man da leider gar nichts zu sagen.

von Falk B. (falk)


Lesenswert?

@Zusammenpacker_Atmega (Gast)

>Ich wollte eig. nur wissen, ob ich Hardwareinitialisierungen in einer
>gewissen Reihenfolge abarbeiten lassen sollte.

Zu 99% ist die Reihenfolge UNTERSCHIEDLICHER Module bei der 
Initialisierung egal. INNERHALB eines Moduls kann es bisweilen auf die 
Reihenfolge ankommen, z.B. wenn man vor dem Programmstart erst noch 
einmal möglicherweise anstehende Interruptflags von timern etc. löschen 
will.

MFG
Falk

von Zusammenpacker_Atmega (Gast)


Lesenswert?

Hi Falk,

ich glaube da hast du mich auf ne Idee gebracht! Das werde ich doch 
gleich mal testen.. Danke!

greetz

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.