AVR springt nicht in Routine

Gast #846908
Lesenswert?

Hallo Leute,

ich schreibe mir gerade ein kleines Programm fürn RFM12.

Ich hab die ganzen Routinen in ein eigenes C-File ausgelagert ( RFM12.c 
) und möchte diese über ein H-File in mein Main-File einbinden. der 
AVR-GCC hat auch alles ohne zu meckern compiliert, aber auf dem AVR 
läuft nur das ab was in der main steht, in die Funktion RFM12_init() 
springt er nicht und den Rest was anch dem aufruf kommt ignoriert er 
auch. Könnt ihr mir bitte helfen ich finde den Fehler einfach nicht. 
Danke
Angehängte Dateien:
#846927
Lesenswert?

Die extern vor den Funktionsprototypen im Header sind flüssiger als 
Wasser. Lass sie weg. extern macht nur bei Variablen Sinn.

Mich sollte auch wundern, wenn _delay_ms(50) und _delay_ms(200) bei den 
angegebenen 8 MHz das machen, was Du willst. Oder hast Du eine 
brandaktuelle Version der AVR-libc? Ich habe gehört, dass in irgendeiner 
neuen Version die _delay_XX-Funktionen nicht mehr begrenzt sein 
sollen...
Gast #846959
Lesenswert?

also die delay hab ich geändert die machen das was sie sollen zumindest 
blinken die LED 3x im "richtigen Takt" (Power-Signal)
Aber trot jetzt wo ich das extern weg hab gehts irgendwie immer noch 
nicht. Sehr merkwürdig.
Angehängte Dateien:
Gast #847007
Lesenswert?

Eine Frage hab ich noch:

Mit
1
#define RF_FREQ    430.8          // Sendefrequenz in MHz
2
#define RF_FREQSET  (430 - RF_FREQ)/0.0025
3

4
...
5

6
RFM12_com(0xA000| RF_FREQSET);

Möchte ich die Frequenz des RFM12 schreiben, doch ich bekomme die 
Fehlermeldung das RF_FREQSET nicht Binär ist, wie kann ich das runden 
oder "binärisieren" damit ich das so schreiben kann?
Gast #847011
Lesenswert?

Du veroderst da mit einer Fließkommazahl. Die wird wenigstens schon beim 
Compilieren berechnet, also es werden keine Fließkommabibliotheken 
eingelinkt.

Schreib mal
1
#define RF_FREQ    430.8          // Sendefrequenz in MHz
2
#define RF_FREQSET  ((unsigned int) (430 - RF_FREQ)/0.0025)
3

4
...
5

6
RFM12_com(0xA000| RF_FREQSET);
Gast #847043
Lesenswert?

@Stefan

Nein das ist wieder nen Tippfehler müsste + heißen, danke.


Aber mit
1
#define RF_FREQ    430.8          // Sendefrequenz in MHz
2
#define RF_FREQSET  ((unsigned int) (430 - RF_FREQ)/0.0025)


gehts auch nede, es kommt immer noch die gleiche Fehlermeldung.
Gast #847064
Lesenswert?

sorry wegen den Doppelposts, aber ich habs jetzt aufn AVR überspielt und 
er springt immer noch nicht in die Routinen aus dem RFM12.c. Ich hab den 
neusten SRC mal angehängt. Langsam zweifel ich an meinen C-Kenntnissen.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren