Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*******************************************************************************
- Projektname: RC5.cprj
- Benötigte Libs´s: IntFunc_lib.cc
- Routinen: lcd.cc, PRO-BOT128C_Lib_V2.cc
- Autor: Niels
- Datum: 6. 6. 2013
- Funktion: RC5-Fernsteuerung zum Steuern des PRO-BOT verwenden
- Nur für RCX161-Fernsteuerung!
- Nur Kanal 0 ist möglich über "TV"!
- Mehrere Fernsteuerungen und PRO-BOTs sind nicht gleichzeitig
- verwendbar!
- *******************************************************************************/
- // Compiler-Direktiven
- #define RC5DATAMASK 0b0000000000111111 // Konstante definieren (10 Nullen + 6 Einsen)
- #define SPEED1 225
- #define SPEED2 250
- void main(void)
- {
- PRO_BOT128_INIT(); //PRO-BOT128 Setup
- LCD_Init();
- RC5_Init(26); // 26 ist die Hardwareadresse
- AbsDelay(100); //Wait 0,1 Sec.
- LCD_ClearLCD();
- Akkuspg(); // Ausgabe der Akkuspannung
- LCD_ClearLCD();
- // Wie funktioniert RC5?
- // Theorie an der Tafel (-;
- // Fernbedienung RCX161:
- // TV = Kanal 0
- // 32
- // 17 41 16
- // 33
- //
- int RC5Value; // Rohwert von der Fernsteuerung
- int RC5Data; // Variable für den Tastencode (die letzten 6 Bit von RC5Value)
- while(1)
- {
- RC5Value=RC5_Read(); // Übergibt dem Programm die RC5-Rohdaten (14 Bit)
- // Wir wollen den Tastencode ermitteln (die ganz rechten 6 Bit)
- // Den "Rest" (links) müssen wir maskieren
- RC5Data=RC5Value&RC5DATAMASK;
- // Ausgabe auf Display
- LCD_Locate(1, 1);
- LCD_WriteText("Tastencode: ");
- LCD_WriteWord(RC5Data, 2); //
- LCD_Locate(2, 1);
- switch(RC5Data)
- {
- case 32: LCD_WriteText("Vorwaerts!!");
- MOTOR_DIR(1,1); //MOTOR DIRECTION
- DRIVE_ON(); //Motorspannung an
- MOTOR_POWER(SPEED2, SPEED1);
- break;
- case 17: LCD_WriteText("Links!!!!!!");
- MOTOR_DIR(1,1); //MOTOR DIRECTION
- DRIVE_ON(); //Motorspannung an
- MOTOR_POWER(0, SPEED1);
- break;
- case 16: LCD_WriteText("Rechts!!!!!");
- MOTOR_DIR(1,1); //MOTOR DIRECTION
- DRIVE_ON(); //Motorspannung an
- MOTOR_POWER(SPEED2, 0);
- break;
- case 41: LCD_WriteText("Stopp!!!!!!");
- DRIVE_OFF(); //Motorspannung aus
- break;
- case 33: LCD_WriteText("Rueckwaerts");
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement