Funksteckdosen Library

Gast #3126159
Lesenswert?

Hallo Leute,

ich bin der malli und habe da eine Frage bezüglich der euch vielleicht 
bekannten Funksteckdosen 433 MHz Library "rc-switch", die open source 
unter http://code.google.com/p/rc-switch/ zu finden ist.
Diese will ich auf plain gcc Code "portieren", dazu habe ich im Code 
einfach die RCSwitch:transmit Funktion geändert:

digitalWrite(…, HIGH) zu PORTB |= (1 << …)
digitalWrite(…, LOW) zu PORTB &= ~(1 << …)

sowie eine delayMicroseconds Funktion implementiert:

void delayMicroseconds(uint8_t x) {
uint8_t i;

for (i = 0; i<x; i++) {
_delay_us(1);
}
}

die receive Funktionen benötige ich nicht, daher hab ich einfach 
RCSwitchDisbaleReceiving definiert.

Leider bleibt das ganze ohne Funktion, weiß jemand, warum? Der Sender 
funktioniert mit der Library am Arduino perfekt.

Danke, euer malli
Gast #3126965
Lesenswert?

Ja, die Fuses sind gesetzt. Habe testweise auch eine LED sekundenweise 
blinken lassen, stimmt genau. Ich hab auch mal F_CPU sehr hoch gesetzt, 
um die Übertragung an einer LED zu beobachten, und es kommt mir so vor, 
als würde immer das High des ersten Impulses fehlen, keine Ahnung ob ich 
mir das nur einbilde
Gast #3126971
Lesenswert?

malli schrieb:
> Ja, die Fuses sind gesetzt. Habe testweise auch eine LED sekundenweise
> blinken lassen, stimmt genau. Ich hab auch mal F_CPU sehr hoch gesetzt,
> um die Übertragung an einer LED zu beobachten, und es kommt mir so vor,
> als würde immer das High des ersten Impulses fehlen, keine Ahnung ob ich
> mir das nur einbilde

LOL :)
Gast #3127089
Lesenswert?

Davis schrieb:
> malli schrieb:
>> Ja, die Fuses sind gesetzt. Habe testweise auch eine LED sekundenweise
>> blinken lassen, stimmt genau. Ich hab auch mal F_CPU sehr hoch gesetzt,
>> um die Übertragung an einer LED zu beobachten, und es kommt mir so vor,
>> als würde immer das High des ersten Impulses fehlen, keine Ahnung ob ich
>> mir das nur einbilde
>
> LOL :)

???

Ich habe jetzt mal den Quellcode angehängt, RCSwitch.cpp und .h sind die 
Dateien der Library, RF433lib.cpp das Testprogramm.
Angehängte Dateien:
#3149791
Lesenswert?

Na ja

> und es kommt mir so vor, als würde immer das High des ersten
> Impulses fehlen, keine Ahnung ob ich mir das nur einbilde

Hast du denn dieses 'kommt mir so vor' in der Zwischenzeit abgeklärt?



Da sich das ganze Protokoll über Zeiten definiert, die im wesentlichen 
hier
1
void delayMicroseconds(uint8_t x)
2
{
3
  uint8_t i;
4

5
  for (i = 0; i < x; i++) {
6
    _delay_us(1);
7
  }
8
  
9
}

festgelegt werden, würde ich mal hergehen und die extrem verlängern. 
Anstatt einem _delay_us(1) würde ich da mal (bei ansonsten unverändertem 
Programm) da ein _delay_ms(10) oder so einsetzen. LED an den Ausgang und 
nachsehen, was sich am Ausgang tut.

Dasselbe mit der Arduino Version und dann das Gesehene miteinander 
vergleichen.

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