12.07.2015 Views

Programming Manual Elektor Proton Robot - ELEKTOR.se

Programming Manual Elektor Proton Robot - ELEKTOR.se

Programming Manual Elektor Proton Robot - ELEKTOR.se

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

The 3 infra red SHARP distance <strong>se</strong>nsors GP2Y0A21YKThis demo program visuali<strong>se</strong>s the A/D value of all 3 Sharp IR <strong>se</strong>nsors on the LCD display.PIC16F887ATMEGA32Demoprogram Flowcode PIC V4Demoprogram Flowcode AVR V4PROTDEM_FCPIC_SHARP.fcfPROTDEM_FCAVR_SHARP.fcf_avrDemoprogram Hitech C lite for PICDemoprogram WinAVR C for AVR#include #include #include "PIC_PROTON_LIB.h"#define _XTAL_FREQ 19660800__CONFIG(0x2ff2); // <strong>se</strong>t HS Xtal etc__CONFIG(0x3fff);void main(){// init AD & Option regANSEL = 0;ANSELH = 0;OPTION = 0xC0;// end of init__delay_ms(250);__delay_ms(250); //wait for stable power supplyvolatile unsigned char IR_L, IR_R, IR_C;I2C_INIT(); // initialize I2C - LCD03 is a I2C LCDchar enc[20] = "WHEEL R C L WHEEL ";LCD_WRITE_STRING(enc);LCD03_CLEAR_SCREEN();LCD03_SET_CURSOR(1);char enc[20] = "SHARP IR ANALG SENS\0"; //null char\0LCD_WRITE_STRING(enc);LCD03_SET_CURSOR(21);char enc[20] = "RIGHT CENTER LEFT\0";LCD_WRITE_STRING(enc);while (1){IR_L = READ_ADC_BYTE_CHANNEL( 0 );IR_C = READ_ADC_BYTE_CHANNEL( 1 );IR_R = READ_ADC_BYTE_CHANNEL( 2 );LCD03_SET_CURSOR(41);char enc[20] = " \0";LCD_WRITE_STRING(enc);LCD03_SET_CURSOR(41);LCD03_WRITE_BYTE(IR_R);LCD03_SET_CURSOR(48);LCD03_WRITE_BYTE(IR_C);LCD03_SET_CURSOR(57);LCD03_WRITE_BYTE(IR_L);__delay_ms(100);#define F_CPU 19660800UL#include #include "AVR_PROTON_LIB.h"#include "AVR_PROTON_LIB.c"int main ( void ){_delay_ms(250);_delay_ms(250); //wait for stable power supplyI2C_INIT(); // initialize I2C - LCD03 is a I2C LCDvolatile unsigned char IR_L, IR_R, IR_C;}LCD03_CLEAR_SCREEN();LCD03_SET_CURSOR(1);LCD03_WRITE_STRING("SHARP IR ANALOG SENS");LCD03_SET_CURSOR(21);LCD03_WRITE_STRING("RIGHT CENTER LEFT");while (1){IR_L = READ_ADC_BYTE_CHANNEL( 0 );IR_C = READ_ADC_BYTE_CHANNEL( 1 );IR_R = READ_ADC_BYTE_CHANNEL( 2 );LCD03_SET_CURSOR(41);LCD03_WRITE_STRING("LCD03_SET_CURSOR(41);LCD03_WRITE_BYTE(IR_R);LCD03_SET_CURSOR(48);LCD03_WRITE_BYTE(IR_C);LCD03_SET_CURSOR(57);LCD03_WRITE_BYTE(IR_L);_delay_ms(100);}"); //line 2 clearBart Huyskens <strong>Manual</strong> <strong>Elektor</strong> <strong>Proton</strong> V1.0 3 April 2011 86

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!