Funksteckdosen Library

Gast #3126159
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
#3126961
malli schrieb:
> Leider bleibt das ganze ohne Funktion, weiß jemand, warum?

Wenn du den ganzen Code posten würdest, könnte man dir leichter helfen. 
So kann man nur mutmaßen und im Nebel stochern.

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

Das funktioniert natürlich nur für ... von 0 bis 7

  Michael
Gast #3126965
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
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
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:
Gast #3134228
zufällig habe ich hier ein  Programmschnipsel entdeckt, welches ich in 
einem anderen Fall nicht deuten konnte.

Was bedeutet das L hinter 16000000 ?
#define F_CPU 16000000L
#3149791
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

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.