int main(void) { int lcd; //if(wiringPiSetupGpio() == -1) return EXIT_FAIL; lcd = lcd_start(); setbuf(stdout,NULL); pinMode(LSW, INPUT); pinMode(RSW, INPUT); pinMode(TGSW, INPUT); pullUpDnControl(LSW, PUD_UP); pullUpDnControl(RSW, PUD_UP); pullUpDnControl(TGSW, PUD_UP); int curTab=0; int lsw,rsw,tgsw; int tabStat[4]={0}; int occupied=0; char s[100]; // ex) lsw == 0 => switch pushed.. while(1) { delay(100); lsw = digitalRead(LSW); rsw = digitalRead(RSW); tgsw = digitalRead(TGSW); printf("lsw, rsw tgsw :%d %d %d\n",lsw,rsw,tgsw); if(!occupied) { if(lsw == 0) occupied = 1; else if(rsw == 0) occupied = 2; else if(tgsw == 0) occupied = 3; } else { if(lsw== 1 && occupied == 1) occupied = 0; else if(rsw == 1 && occupied == 2) occupied = 0; else if(tgsw == 1 && occupied == 3) occupied = 0; } if(occupied == 1 || occupied == 2) { if(occupied == 1) curTab = (curTab-1+MAXTAB)%MAXTAB; if(occupied == 2) curTab = (curTab+1)%MAXTAB; int ret = get_relay_value(curTab); tabStat[curTab] = ret; printf("ret:%d\n",ret); printf("lcd :%d\n",lcd); sprintf(s,"%dth tab is %3s%18s",curTab,ret?"ON":"OFF",""); lcdPosition(lcd,0,0); lcdPuts(lcd,s); delay(200); } else if(occupied==3) { set_relay_value(curTab,!tabStat[curTab]); tabStat[curTab]= !tabStat[curTab]; sprintf(s,"%dth tab is %3s%18s",curTab, tabStat[curTab]?"ON":"OFF",""); lcdPosition(lcd,0,0); lcdPuts(lcd,s); delay(200); } } return EXIT_SUCC; }
/* * Miscelaneous platform dependent initialisations */ int board_init(void) { /* arch number of Z2 */ gd->bd->bi_arch_number = MACH_TYPE_ZIPIT2; /* adress of boot parameters */ gd->bd->bi_boot_params = 0xa0000100; /* Enable LCD */ lcd_start(); return 0; }
/* * main.c */ int main(void) { lcd_pin_init(); clock_config(); lcd_start(); while (1) { write_to_lcd(); delay_ms(1500); } return 0; }
int main(int argc, char** argv) { __builtin_mtc0(_CP0_CONFIG, _CP0_CONFIG_SELECT, 0xa4210583); BMXCONbits.BMXWSDRM = 0x0; INTCONbits.MVEC = 0x1; DDPCONbits.JTAGEN = 0; // do your TRIS and LAT commands here ANSELA = 0; // A Analogic off ANSELB = 0; // B Analogic off TRISBbits.TRISB2 = 0; // A4 output TRISAbits.TRISA0 = 0; // A4 output TRISAbits.TRISA4 = 0; // A4 output TRISBbits.TRISB4 = 1; // B4 inuput __builtin_disable_interrupts(); // starts the PINEX __builtin_mtc0(_CP0_CONFIG, _CP0_CONFIG_SELECT, 0xa4210583); BMXCONbits.BMXWSDRM = 0x0; INTCONbits.MVEC = 0x1; DDPCONbits.JTAGEN = 0; __builtin_enable_interrupts(); uart_init(); return 0; start_PWM(); lcd_start(); while(1) { LATAbits.LATA4 = 0; lcd_clearScreen(LCD_COLOR_BLACK); lcd_printf("hello\nworld!",LCD_COLOR_WHITE); //unsigned int t = timer_start(); //while (!timer_timeout(t, 500 * TIMER_MILLISECOND)); blink(); LATAbits.LATA4 = 1; lcd_clearScreen(LCD_COLOR_WHITE); lcd_printf("hello!",LCD_COLOR_BLACK); //t = timer_start(); //while (!timer_timeout(t, 500 * TIMER_MILLISECOND)); } return (EXIT_SUCCESS); }
/***************************************************************************** * FUNCTION * BL_UpdateLCDScreen * DESCRIPTION * update LCD * PARAMETERS * void * RETURNS * void *****************************************************************************/ static void BL_UpdateLCDScreen(void) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ //lcd_fue_fb_update(&g_bl_lcd_para); lcd_config_roi(&g_bl_lcd_para); lcd_start(g_bl_lcd_para.update, g_bl_lcd_para.block_mode_flag, g_bl_lcd_para.tgt_start_x, g_bl_lcd_para.tgt_start_y, g_bl_lcd_para.tgt_end_x, g_bl_lcd_para.tgt_end_y); }
void OpenSprinkler::begin() { // shift register setup pinMode(PIN_SR_OE, OUTPUT); // pull shift register OE high to disable output digitalWrite(PIN_SR_OE, HIGH); pinMode(PIN_SR_LATCH, OUTPUT); digitalWrite(PIN_SR_LATCH, HIGH); pinMode(PIN_SR_CLOCK, OUTPUT); #if defined(OSPI) pin_sr_data = PIN_SR_DATA; // detect RPi revision unsigned int rev = detect_rpi_rev(); if (rev==0x0002 || rev==0x0003) pin_sr_data = PIN_SR_DATA_ALT; // if this is revision 1, use PIN_SR_DATA_ALT pinMode(pin_sr_data, OUTPUT); #else pinMode(PIN_SR_DATA, OUTPUT); #endif // Reset all stations clear_all_station_bits(); apply_all_station_bits(); // pull shift register OE low to enable output digitalWrite(PIN_SR_OE, LOW); // Rain sensor port set up pinMode(PIN_RAINSENSOR, INPUT); #if defined(ARDUINO) digitalWrite(PIN_RAINSENSOR, HIGH); // enabled internal pullup on rain sensor #else // RPI and BBB have external pullups #endif // Default controller status variables // AVR assigns 0 to static variables by default // so only need to initialize non-zero ones status.enabled = 1; status.safe_reboot = 0; old_status = status; nvdata.sunrise_time = 360; // 6:00am default sunrise nvdata.sunset_time = 1080; // 6:00pm default sunset nboards = 1; nstations = 8; // set rf data pin pinMode(PIN_RF_DATA, OUTPUT); digitalWrite(PIN_RF_DATA, LOW); /*pinMode(PIN_RELAY, OUTPUT); digitalWrite(PIN_RELAY, LOW);*/ hw_type = HW_TYPE_AC; #if defined(ARDUINO) // AVR SD and LCD functions // Init I2C Wire.begin(); #if defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega1284__) // OS 2.3 specific detections uint8_t ret; // detect hardware type Wire.beginTransmission(MAC_CTRL_ID); Wire.write(0x00); ret = Wire.endTransmission(); if (!ret) { Wire.requestFrom(MAC_CTRL_ID, 1); while(!Wire.available()); ret = Wire.read(); if (ret == HW_TYPE_AC || ret == HW_TYPE_DC || ret == HW_TYPE_LATCH) { hw_type = ret; } else { // hardware type is not assigned } } if (hw_type == HW_TYPE_DC) { pinMode(PIN_BOOST, OUTPUT); digitalWrite(PIN_BOOST, LOW); pinMode(PIN_BOOST_EN, OUTPUT); digitalWrite(PIN_BOOST_EN, LOW); } #endif lcd_start(); // define lcd custom icons byte _icon[8]; // WiFi icon _icon[0] = B00000; _icon[1] = B10100; _icon[2] = B01000; _icon[3] = B10101; _icon[4] = B00001; _icon[5] = B00101; _icon[6] = B00101; _icon[7] = B10101; lcd.createChar(1, _icon); _icon[1]=0; _icon[2]=0; _icon[3]=1; lcd.createChar(0, _icon); // uSD card icon _icon[0] = B00000; _icon[1] = B00000; _icon[2] = B11111; _icon[3] = B10001; _icon[4] = B11111; _icon[5] = B10001; _icon[6] = B10011; _icon[7] = B11110; lcd.createChar(2, _icon); // Rain icon _icon[0] = B00000; _icon[1] = B00000; _icon[2] = B00110; _icon[3] = B01001; _icon[4] = B11111; _icon[5] = B00000; _icon[6] = B10101; _icon[7] = B10101; lcd.createChar(3, _icon); // Connect icon _icon[0] = B00000; _icon[1] = B00000; _icon[2] = B00111; _icon[3] = B00011; _icon[4] = B00101; _icon[5] = B01000; _icon[6] = B10000; _icon[7] = B00000; lcd.createChar(4, _icon); // set sd cs pin high to release SD pinMode(PIN_SD_CS, OUTPUT); digitalWrite(PIN_SD_CS, HIGH); if(sd.begin(PIN_SD_CS, SPI_HALF_SPEED)) { status.has_sd = 1; } // set button pins // enable internal pullup pinMode(PIN_BUTTON_1, INPUT); pinMode(PIN_BUTTON_2, INPUT); pinMode(PIN_BUTTON_3, INPUT); digitalWrite(PIN_BUTTON_1, HIGH); digitalWrite(PIN_BUTTON_2, HIGH); digitalWrite(PIN_BUTTON_3, HIGH); // detect if DS1307 RTC exists if (RTC.detect()==0) { status.has_rtc = 1; } #endif }