Noch einmal RFM 02 Sendemodul -das Testprogramm

Gast #4080323
Lesenswert?
• ▲
▼
Hallo und Frohe Ostern!
Erst mal zu meiner Person:
Ich bin weder Schüler noch Student und habe auch in meinem  Berufsleben 
nichts mit Informatik oder mit Elektronik zu tun. Also  -Learning by 
doing-.

Nun zu meinem Problem:
Ich habe mir die HF-Module RFM01-RFM02-bestellt und möchte diese 
natürlich zum Senden/Empfangen bringen. Dazu habe ich mir das 
Testprogramm RFM02 (in Mikrocontroller.net veröffentlicht) kopiert. 
Dieses Testprogramm versuche ich nun zu verstehen und nachzuvollziehen, 
was sich der Programmierer dabei gedacht hat. Hierzu nun einen Auszug 
aus dem Testprogramm.

Beispiel: cmd = 0XCC00
void sendCommand(uint16_t cmd){
  uint8_t i;
  SCK_LOW;
  SELECT;
  for(i=0;i<16;i++){
    SCK_LOW;
    if(cmd&0x8000){  //mein Problem
      SDI_HIGH;
    }else{
      SDI_LOW;
    }
    SCK_HIGH;
    cmd = cmd << 1;
  }
  SCK_LOW
  asm("nop");
  UNSELECT;
}
Nun verstehe ich die Bedingung in der IF-Anweisung 
--if(cmd&0x8000)—nicht.
If—ok--
cmd --dürfte der Funktionsparameter sein
0X—zeigt das es eine hexadezimal ist
8000 –hexadezimalzahl—
Aber was ist mit--&-- gemeint, der Bitweise Operator – and-- ??
Wie muss ich diese Anweisung lesen? Welche Bedingungen müssen erfüllt 
werden damit der Befehl-- SDI_HIGH –ausgeführt wird  bzw. die else 
Anweisung ausgeführt wird?
Danke
Lothilein
#4080465
Lesenswert?
• ▲
▼
Bitweises "AND".
1
cmd & 0x8000
"verunded" cmd mit 0x8000. Das Ergebnis ist entweder 0 oder != 0.

Letztendlich wird in der Zeile also schlicht geprüft, ob Bit 15 in cmd 
gesetzt ist oder nicht.

Ein Buch wär' wahrscheinlich wesentlich effizienter als die Operatoren 
hier einzeln abzufragen ;)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.