Gast
#4080323
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