void RTCC_isr(void) { //output_toggle(PIN_B6); switch(levelEnable){ case 0:output_a(level_0_Enable); output_c(cubeLevelC0); output_d(cubeLevelD0); break; case 1:output_a(level_1_Enable); output_c(cubeLevelC1); output_d(cubeLevelD1); break; case 2:output_a(level_2_Enable); output_c(cubeLevelC2); output_d(cubeLevelD2); break; case 3:output_a(level_3_Enable); output_c(cubeLevelC3); output_d(cubeLevelD3); break; } if (levelEnable == 3){ levelEnable = 0; }else{ levelEnable++; } output_toggle(PIN_B6); }
void main(){ setup(); while(1){ for(i=0;i<3;i++){ old_pin[i]=pin[i]; pin[i]=input_b() & (1<<(7-i)); } if(pin[1]==0){output_a(FORWARD);} else if(pin[0]==0){output_a(R_TURNV);delay_ms(8);j=1;} else if(pin[2]==0){output_a(L_TURNV);delay_ms(8);j=1;} else { j++; output_a(BACK); delay_ms(3); output_a(STOP); delay_us(100); output_a(R_TURN); delay_ms(10);} //if(j==20){output_a(BACK);delay_ms(50);j=1;} delay_ms(1); output_a(STOP); delay_us(100); } for (;;) { for (PWM_COUNT=PWM_MAX;PWM_COUNT<1;PWM_COUNT--){ if(state[1]>PWM_COUNT) output_a(state[0]); else output_a(state[2]); delay_ms(100); } } }
void main(){ setup(); while(1){ for(i=0;i<3;i++){ old_pin[i]=pin[i]; pin[i]=input_b() & (1<<(7-i)); } if(pin[1]==0){output_a(FORWARD);} else if(pin[0]==0){output_a(R_TURNV);delay_ms(8);j=1;} else if(pin[2]==0){output_a(L_TURNV);delay_ms(8);j=1;} else { j++; output_a(BACK); delay_ms(3); output_a(STOP); delay_us(100); output_a(R_TURN); delay_ms(1);} //if(j==20){output_a(BACK);delay_ms(50);j=1;} delay_ms(1); output_a(STOP); delay_us(100); if(k==200) { output_a(BRAKE); delay_ms(100); } } while(1){ output_a(R_TURN); delay_ms(1);} }
// ** Grundinitialisierung ** void coldstart () { setup_adc_ports(sAN0|sAN1|sAN2|sAN3|sAN4|VSS_VDD); setup_adc(ADC_CLOCK_INTERNAL|ADC_TAD_MUL_0); setup_oscillator(OSC_8MHZ|OSC_INTRC); setup_comparator(NC_NC_NC_NC); output_a (0b00001000); output_b (0); output_c (0); output_d (0); output_e (0); set_tris_a (TRISA_INIT); // Datenrichtung Port A set_tris_b (TRISB_INIT); // Datenrichtung Port B set_tris_c (TRISC_INIT); set_tris_d (TRISD_INIT); set_tris_e (TRISE_INIT); port_b_pullups(TRUE); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_32|RTCC_8_BIT); // Timer0 intern, Takt 20.00/4/64 = 78.125 KHz // Interrupt alle 256/15.625 = 3.2768 ms (305Hz) // Korrekturwert für 10 ms: 156 Timerclicks // -> Timer wird auf 256-156=100 vorgestellt set_timer0 (Timerstartwert_K); // Timerwert auf Startwert setzen enable_interrupts(INT_TIMER0); setup_timer_1(T1_DISABLED); // Nur Timer0 Interrupt delay_ms (200); }
void driverDisplay( unsigned char velocidade ) { unsigned char Umin = 0; unsigned char Dmin = 0; unsigned char display = 0; unsigned char input = 0; //Carrego os valores de dezena e unidade dos minutos e horas Dmin = velocidade/10; Umin = velocidade - 10*Dmin; while( display < 2 ) { switch( display ) { case 0: //Carrego os dados da porta, para não mudar o estado do outro decoder( 2 ) input = portc&0xF0; //Carrego para os 4 bits menos significativos o estado atual do decoder 1 output_c( input |= bcdTable[ Umin ] ); break; case 1: //Carrego os dados da porta, para não mudar o estado do outro decoder input = porta&0xF0; //Faço um deslocamento de 4 bits para poder carregar o valor correto para o decoder 2 output_a( input |= bcdTable[ Dmin ] ); break; } display++; } }
//============================================================================= void init_prog(void) { setup_wdt(WDT_OFF); setup_adc_ports(NO_ANALOGS|VSS_VDD); setup_adc(ADC_OFF); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16|RTCC_8_BIT);// TIMER0 setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_timer_3(T3_DISABLED|T3_DIV_BY_1); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); setup_low_volt_detect(FALSE); setup_oscillator(OSC_32MHZ); set_tris_a(0xFF);//7F set_tris_b(0xFF); //FF set_tris_c(0x94);//94 set_tris_d(0xFF); //02 set_tris_e(0xF0); //f0 set_tris_f(0xFF);//ff set_tris_g(0xFC); //04 output_a(0x00); output_b(0x00); output_c(0x00); output_d(0x00); output_e(0x00); output_f(0x00); output_g(0x00); }
void main (void) { set_tris_c(0xff); set_tris_e(0xff); while(1) { leds = lee_microsw(); output_a(leds); printf("%u\n",leds); delay_ms(200); if(leds==valor) { valor=lee_microsw(); } else { valor=lee_microsw(); leds = lee_microsw(); printf("%u\n",leds); } delay_ms(200); } }
void main(void){ int8_t data=0; setup_adc(ADC_CLOCK_DIV_8); //ADCのサンプリング設定 setup_wdt(WDT_1152MS); while(1){ restart_wdt();/* output_high(PIN_A0); output_low(PIN_A1); output_high(PIN_A2); //以上アドレスピン設定 output_low(PIN_A3); output_low(PIN_A4); output_high(PIN_A5); //以上エネーブルピン設定*/ output_a(0b00001111); setup_adc_ports(ALL_ANALOG); set_adc_channel(6); /* ここでADCを適用できるピンと実際に適用するピンを決めます。 ちなみに仕様として各ピンの役割を個別に設定できないようです。 ですがすべてアナログに設定しても問題なくエネーブルピンやアドレスピンは動いてくれているので見なかったことにしましょう。 */ delay_us(20); restart_wdt(); data=read_adc(); setup_adc_ports(NO_ANALOGS);//一応戻しています。 putc((char)data); sleep(); } }
void update_field () { output_a (0); output_b (field); if (dir_left) field <<= 1; else field >>= 1; if (!field) { dir_left = !dir_left; if (dir_left) { field = 1; if (input (BTN_A)) score (LED_A); } else { field = 0x80; if (input (BTN_B)) score (LED_B); } } else { if (!input (BTN_A)) score (LED_B); if (!input (BTN_B)) score (LED_A); } }
void init_device () { set_tris_a (0x18); /* 0b11000 */ set_tris_b (0); output_b (0); output_a (0); out_of_game = 1; output_high (LED_OUT); }
void main() { int8 val; char car; // Initialization delay_ms(400); disable_interrupts(global); disable_interrupts(int_timer1); disable_interrupts(int_timer2); disable_interrupts(int_ext); setup_adc_ports(NO_ANALOGS|VSS_VDD); setup_adc(ADC_OFF|ADC_TAD_MUL_0); setup_spi(FALSE); setup_wdt(WDT_OFF); setup_timer_0(RTCC_INTERNAL); setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); setup_timer_2(T2_DIV_BY_1,2,1); setup_timer_3(T3_DISABLED|T3_DIV_BY_1); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); setup_low_volt_detect(FALSE); setup_oscillator(False); delay_ms(400); while(1) { val = input(PIN_B0); if (val == 0) { output_a(0); } else if (val == 1) { output_a(255); } } }
void bsp_init(void) { set_tris_c(0xff); set_tris_e(0xff); set_tris_a(0x00); output_a(0); set_tris_a(0);//configurado como salida set_tris_e(1); //configurado como entrada SETUP_ADC_PORTS(sAN5); // este pin es analogo SET_ADC_CHANNEL(5); // el canal que usaremos y de cual obtendremos la señal es el 5 setup_adc(ADC_CLOCK_DIV_32); lcd_init(); }
void main(void) { int8 leds; set_tris_c(0xff); set_tris_e(0xff); set_tris_a(0); while(1) { leds = lee_microsw(); output_a(leds); delay_ms(200); } }
//------------------------------------------------------------------------------ void init_prog(void) { setup_wdt(WDT_OFF); setup_adc_ports(NO_ANALOGS|VSS_VDD); setup_adc(ADC_OFF); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16|RTCC_8_BIT);// TIMER0 setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_timer_3(T3_DISABLED|T3_DIV_BY_1); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); setup_low_volt_detect(FALSE); setup_oscillator(OSC_32MHZ); set_tris_a(0x00); set_tris_b(0x24); set_tris_c(0x80); set_tris_d(0x00); set_tris_e(0x15); set_tris_f(0x58); set_tris_g(0x10); output_a(0x00); output_b(0x00); output_c(0x00); output_d(0x00); output_e(0x00); output_f(0x00); output_g(0x00); // RF Modul and PA/LNA activation IOpin.modulepower=0; IOpin.moduleCTX=1; IOpin.moduleCPS=0; IOpin.modulePWRUP=1; }
void bsp_leds(int8 val) { output_a(val); }
void setup(){ //OPTION=0b00000010; /* 0 PBPU プルアップを使用する。 * 0 INTEDG 立下りエッジを検出し割り込む * 0 TMR0clocksource 内部クロック * 0 TMR0のインクリメントタイミング * 0 ぷりすけーらーをTMR0に使う。 * 010 0.8192ms 1/8 001 0.4096ms 1/16 */ setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256); //INTCON=0b10101000; /* 1 GIE * 0 EE INT EN * 1 TM0 INT EN * 0 INT INT EN * 1 RB INT EN * 0 TM0 INT FLAG * 0 INT INT FLAG * 0 RB INT FLAG */ set_tris_A(0b00010000); //TRISA=0b00010000; /* 0 予約 * 0 予約 * 0 予約 * 1 * 0 17 U3 IN1 * 0 18 U3 IN2 * 0 02 U2 IN2 * 0 01 U2 IN1 */ //PORTA=0; output_a(0); set_tris_B(0b11111111); //TRISB=0b11111111; /* 1 13 ラインセンサ * 1 12 ラインセンサ * 1 11 ラインセンサ * 1 * 1 * 1 * 1 * 1 */ //PORTB=0; output_b(0); enable_interrupts(INT_TIMER0); enable_interrupts(GLOBAL); /*temp aaa CLRWDT(); TMR0=0; T0IE=0; T0IF=0; } void TmWait(void){ while(!T0IF); T0IF = 0; } aaa temp*/ }
void main () { disable_interrupts(GLOBAL); //общее запрещение прерываний setup_oscillator(OSC_8MHZ); //|OSC_INTRC set_tris_a(0x00); //выходы set_tris_b(0xff); //входы set_tris_c(0x10); //выходы, RC4-вход(данные от STM) //output_c(0x4f); portc=0x4f; porta=0x7f; portb=0xff; //set_tris_c(0x10); //выходы, RC4-вход(данные от STM) //output_a(0x7f); //output_b(0xff); pit_bykl(); pr_wkl_pit=0; //пр. вкл. питания (исп. для 1-го нажатия кн. "Питание") delay_ms(1000); //для настройки STM //Инициализация модуля MSSP(режим SPI) SSPCON1=0x31; SSPSTAT=0; //0x80; SSPBUF=0x55; //иниц. таймеров: //t0con=0xc8; //8-ми разр t0con=0x88; //16-ми разр счетчик T1CON=0x85; setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); set_timer1(62286); set_timer0(64536); //enable_interrupts(INT_TIMER2); enable_interrupts(INT_TIMER1); enable_interrupts(INT_TIMER0); enable_interrupts(GLOBAL); //СОСТОЯНИЕ кнопок и ручек по ВКЛЮЧЕНИЮ: //---------------------------------------- for (ii=0; ii<6;ii++) { du_pA=porta&0xc0|mask[ii]; output_a(du_pA); pr_state_rb[ii] = input_b(); } while(1) { for (ii=0; ii<6;ii++) { pr_ruk=0; // output_a(mask[ii]); //SL... -> PORTA du_pA=porta&0xc0|mask[ii]; output_a(du_pA); tek_state_rb[ii] = input_b(); if (pr_state_rb[ii] ^ tek_state_rb[ii]) //возможно нажатие или вращение ? { if ((tek_state_rb[ii]&mask_kn[ii])!=mask_kn[ii]) //если это кнопка, то отрабат. дребезг { //кнопка delay_ms(1); tek1_state_rb = input_b(); delay_ms(1); tek2_state_rb = input_b(); delay_ms(1); tek3_state_rb = input_b(); // if (tek_state_rb[ii] == tek3_state_rb) //дребезг зак.-есть нажатие/отжатие или вращение! } else //ручка { tek3_state_rb=tek_state_rb[ii]; } if (tek_state_rb[ii] == tek3_state_rb) //дребезг зак.-есть нажатие/отжатие или вращение! switch(ii) //номер сигнала SL0,SL1,SL2,SL3,SL4,SL5 { case 0: //SL0 //Кнопки K1, Ser: if (!(tek3_state_rb & (1 << 0))) { buf_per=0x81; //№1-наж. do tek3_state_rb = input_b(); while (!(tek3_state_rb & (1 << 0))); //отжатие произошло while (buf_per!=0) {} buf_per=0x01; //№1-отж. break; } if (!(tek3_state_rb & (1 << 5))) { buf_per=0x82; //№2-наж. do tek3_state_rb = input_b(); while (!(tek3_state_rb & (1 << 5))); //отжатие произошло while (buf_per!=0) {} buf_per=0x02; //№2-отж. break; } //Ручки -B_K1, +B_K1 -Sm_K1, +Sm_K1: //*********************************** if ((tek3_state_rb & 0x02)&&(tek3_state_rb & 0x04)) //RB1 & RB2==1 { for (ib=0; ib<2;ib++) { if ((tek3_state_rb & (0x02 << ib)) && (!(pr_state_rb[ii] & (0x02 << ib)))) switch(ib) { case 0: pr_ruk=1; buf_per=0x14; //№20-влево break; case 1: pr_ruk=1; buf_per=0x94; //№20-вправо break; }//switch } //for ib } //if // else // { if ((tek3_state_rb & 0x08)&&(tek3_state_rb & 0x10)&& (!pr_ruk)) //RB3 & RB4==1 & pr_ruk=0 { for (ib=0; ib<2;ib++) { if ((tek3_state_rb & (0x08 << ib)) && (!(pr_state_rb[ii] & (0x08 << ib)))) switch(ib) { case 0: { buf_per=0x15; //№21-влево break; } case 1: { buf_per=0x95; //№21-вправо break; } }//switch ib } //for } //if // } //else pr_state_rb[ii]=tek3_state_rb; pr_ruk=0; break; case 1: //SL1 //Кнопки K2, DISP: if (!(tek3_state_rb & (1 << 0))) { buf_per=0x83; //№3-наж. do tek3_state_rb = input_b(); while (!(tek3_state_rb & (1 << 0))); //отжатие произошло while (buf_per!=0) {} buf_per=0x03; //№2-отж. break; } if (!(tek3_state_rb & (1 << 5))) { buf_per=0x84; //№4-наж. do tek3_state_rb = input_b(); while (!(tek3_state_rb & (1 << 5))); //отжатие произошло while (buf_per!=0) {} buf_per=0x04; //№4-отж. break; } //Ручки -B_K2, +B_K2 -Sm_K2, +Sm_K2: //*********************************** if ((tek3_state_rb & 0x02)&&(tek3_state_rb & 0x04)) //RB1 & RB2==1 { for (ib=0; ib<2;ib++) { if ((tek3_state_rb & (0x02 << ib)) && (!(pr_state_rb[ii] & (0x02 << ib)))) switch(ib) { case 0: pr_ruk=1; buf_per=0x16; //№22-влево break; case 1: pr_ruk=1; buf_per=0x96; //№22-вправо break; }//switch } //for } //if // else // { if ((tek3_state_rb & 0x08)&&(tek3_state_rb & 0x10) && (!pr_ruk)) //RB3 & RB4==1 & (!pr_ruk) { for (ib=0; ib<2;ib++) { if ((tek3_state_rb & (0x08 << ib)) && (!(pr_state_rb[ii] & (0x08 << ib)))) switch(ib) { case 0: { buf_per=0x17; //№23-влево break; } case 1: { buf_per=0x97; //№23-вправо break; } }//switch } //for } //if // } //else // pr_state_rb[ii]=tek3_state_rb; pr_ruk=0; break; case 2: //SL2 //Кнопки Raz, Pam: if (!(tek3_state_rb & (1 << 0))) { buf_per=0x85; //№5-наж. do tek3_state_rb = input_b(); while (!(tek3_state_rb & (1 << 0))); //отжатие произошло while (buf_per!=0) {} buf_per=0x05; //№5-отж. break; } if (!(tek3_state_rb & (1 << 5))) { buf_per=0x86; //№6-наж. do tek3_state_rb = input_b(); while (!(tek3_state_rb & (1 << 5))); //отжатие произошло while (buf_per!=0) {} buf_per=0x06; //№6-отж. break; } //Ручки -T, +T -Del, +Del: //*********************************** if ((tek3_state_rb & 0x02)&&(tek3_state_rb & 0x04)) //RB1 & RB2==1 { for (ib=0; ib<2;ib++) { if ((tek3_state_rb & (0x02 << ib)) && (!(pr_state_rb[ii] & (0x02 << ib)))) switch(ib) { case 0: pr_ruk=1; buf_per=0x18; //№24-влево break; case 1: pr_ruk=1; buf_per=0x98; //№24-вправо break; }//switch } //for } //if // else { if ((tek3_state_rb & 0x08)&&(tek3_state_rb & 0x10) && (!pr_ruk)) //RB3 & RB4==1 & (!pr_ruk) { for (ib=0; ib<2;ib++) { if ((tek3_state_rb & (0x08 << ib)) && (!(pr_state_rb[ii] & (0x08 << ib)))) switch(ib) { case 0: { buf_per=0x19; //№25-влево break; } case 1: { buf_per=0x99; //№25-вправо break; } }//switch } //for } //if } //else // pr_state_rb[ii]=tek3_state_rb; pr_ruk=0; break; case 3: //SL3 //Кнопки Sinch, Pusk, Kurs, Izm: if (!(tek3_state_rb & (1 << 0))) { buf_per=0x87; //№7-наж. do tek3_state_rb = input_b(); while (!(tek3_state_rb & (1 << 0))); //отжатие произошло while (buf_per!=0) {} buf_per=0x07; //№7-отж. break; } if (!(tek3_state_rb & (1 << 3))) { buf_per=0x88; //№8-наж. do tek3_state_rb = input_b(); while (!(tek3_state_rb & (1 << 3))); //отжатие произошло while (buf_per!=0) {} buf_per=0x08; //№8-отж. break; } if (!(tek3_state_rb & (1 << 4))) { buf_per=0x89; //№9-наж. do tek3_state_rb = input_b(); while (!(tek3_state_rb & (1 << 4))); //отжатие произошло while (buf_per!=0) {} buf_per=0x09; //№9-отж. break; } if (!(tek3_state_rb & (1 << 5))) { buf_per=0x8A; //№10-наж. do tek3_state_rb = input_b(); while (!(tek3_state_rb & (1 << 5))); //отжатие произошло while (buf_per!=0) {} buf_per=0x0A; //№10-отж. break; } //Ручки -Ur, +Ur : //**************** if ((tek3_state_rb & 0x02)&&(tek3_state_rb & 0x04)) //RB1 & RB2==1 { for (ib=0; ib<2;ib++) { if ((tek3_state_rb & (0x02 << ib)) && (!(pr_state_rb[ii] & (0x02 << ib)))) switch(ib) { case 0: buf_per=0x1A; //№26-влево break; case 1: buf_per=0x9A; //№26-вправо break; }//switch } //for } //if // pr_state_rb[ii]=tek3_state_rb; break; case 4: // SL4 //Кнопки Pit, Sbor: if (!(tek3_state_rb & (1 << 0))) { buf_per=0x8B; //№11-наж. if (pr_wkl_pit==0) { pit_bkl(); } break; } if (!(tek3_state_rb & (1 << 5))) { buf_per=0x8C; //№12-наж. do tek3_state_rb = input_b(); while (!(tek3_state_rb & (1 << 5))); //отжатие произошло while (buf_per!=0) {} buf_per=0x0C; //№12-отж. break; } //Ручки -Ur, +Ur : //**************** if ((tek3_state_rb & 0x02)&&(tek3_state_rb & 0x04)) //RB1 & RB2==1 { for (ib=0; ib<2;ib++) { if ((tek3_state_rb & (0x02 << ib)) && (!(pr_state_rb[ii] & (0x02 << ib)))) switch(ib) { case 0: buf_per=0x1B; //№27-влево break; case 1: buf_per=0x9B; //№27-вправо break; }//switch } //for } //if // pr_state_rb[ii]=tek3_state_rb; break; case 5: //SL5 //Кнопки Men,"1", "2", "3", "4", "5": if (!(tek3_state_rb & (1 << 0))) { buf_per=0x8D; //№13-наж. do tek3_state_rb = input_b(); while (!(tek3_state_rb & (1 << 0))); //отжатие произошло while (buf_per!=0) {} buf_per=0x0D; //№13-отж. break; } if (!(tek3_state_rb & (1 << 1))) { buf_per=0x8e; //№14-наж. do tek3_state_rb = input_b(); while (!(tek3_state_rb & (1 << 1))); //отжатие произошло while (buf_per!=0) {} buf_per=0x0e; //№14-отж. break; } if (!(tek3_state_rb & (1 << 2))) { buf_per=0x8f; //№15-наж. do tek3_state_rb = input_b(); while (!(tek3_state_rb & (1 << 2))); //отжатие произошло while (buf_per!=0) {} buf_per=0x0f; //№15-отж. break; } if (!(tek3_state_rb & (1 << 3))) { buf_per=0x90; //№16-наж. do tek3_state_rb = input_b(); while (!(tek3_state_rb & (1 << 3))); //отжатие произошло while (buf_per!=0) {} buf_per=0x10; //№16-отж. break; } if (!(tek3_state_rb & (1 << 4))) { buf_per=0x91; //№17-наж. do tek3_state_rb = input_b(); while (!(tek3_state_rb & (1 << 4))); //отжатие произошло while (buf_per!=0) {} buf_per=0x11; //№17-отж. break; } if (!(tek3_state_rb & (1 << 5))) { buf_per=0x92; //№18-наж. do tek3_state_rb = input_b(); while (!(tek3_state_rb & (1 << 5))); //отжатие произошло while (buf_per!=0) {} buf_per=0x12; //№18-отж. break; } pr_state_rb[ii]=tek3_state_rb; break; }//switch(ii) pr_state_rb[ii]=tek3_state_rb; }//if }//for (ii) }//while(1) //output_bit(PIN_C3,1); //BUF_CAP[i-1]=input(PIN_C4); //output_bit( PIN_B2, 0); //Ldac в 0 //level = input_state(pin_A3); } //main
void main(void) { set_tris_a(0b11110000); // PROBAR SACAR ESTOO set_tris_b(0b11111111); // PORT_B_PULLUPS(0b00000000); // PROBAR SACAR ESTOO output_a(0b00000000); output_b(0b00000000); OUTPUT_HIGH(LED_APAGADO); if(!INPUT(MODO)) delay=1; while(!delay){ // MODO DEPURACION OUTPUT_HIGH(CONTACTOR); if(INPUT(START)&&(!encendido)) { encendido=1; OUTPUT_HIGH(SENNAL_ENCENDIDO); OUTPUT_LOW(LED_APAGADO); OUTPUT_HIGH(LED_ENCENDIDO); delay_ms(200); OUTPUT_LOW(SENNAL_ENCENDIDO); OUTPUT_HIGH(NEON); } if(INPUT(STOP)&&(encendido)) { encendido=0; OUTPUT_HIGH(SENNAL_APAGADO); OUTPUT_LOW(LED_ENCENDIDO); OUTPUT_HIGH(LED_APAGADO); delay_ms(200); OUTPUT_LOW(SENNAL_APAGADO); OUTPUT_LOW(NEON); } if(INPUT(ERROR)&&(encendido)) // LIMPIA LOS ERRORES { encendido=0; OUTPUT_LOW(LED_ENCENDIDO); OUTPUT_HIGH(LED_APAGADO); OUTPUT_LOW(NEON); } } // MODO DEPURACION while(delay) // MODO NORMAL { if(INPUT(START)&&(!encendido)) { encendido=1; delay_ms(50); OUTPUT_HIGH(CONTACTOR); OUTPUT_LOW(LED_APAGADO); for (int i = 0; i < 10; i++){ OUTPUT_HIGH(LED_ENCENDIDO); delay_ms(200); OUTPUT_LOW(LED_ENCENDIDO); delay_ms(200); } OUTPUT_HIGH(LED_ENCENDIDO); OUTPUT_HIGH(SENNAL_ENCENDIDO); delay_ms(200); OUTPUT_LOW(SENNAL_ENCENDIDO); OUTPUT_HIGH(NEON); } if(INPUT(STOP)&&(encendido)) { encendido=0; delay_ms(50); OUTPUT_HIGH(SENNAL_APAGADO); OUTPUT_LOW(LED_ENCENDIDO); delay_ms(200); OUTPUT_LOW(SENNAL_APAGADO); OUTPUT_LOW(NEON); delay_ms(200); OUTPUT_LOW(CONTACTOR); for (int i = 0; i < 10; i++){ OUTPUT_HIGH(LED_APAGADO); OUTPUT_HIGH(NEON); delay_ms(200); OUTPUT_LOW(LED_APAGADO); OUTPUT_LOW(NEON); delay_ms(200); if (i==2){ OUTPUT_HIGH(SENNAL_ENCENDIDO); delay_ms(200); OUTPUT_LOW(SENNAL_ENCENDIDO); } else OUTPUT_LOW(SENNAL_ENCENDIDO); } OUTPUT_HIGH(SENNAL_APAGADO); delay_ms(200); OUTPUT_LOW(SENNAL_APAGADO); /*OUTPUT_HIGH(SENNAL_ENCENDIDO); delay_ms(500); OUTPUT_LOW(SENNAL_ENCENDIDO);*/ delay_ms(20); OUTPUT_HIGH(LED_APAGADO); OUTPUT_LOW(NEON); } if(INPUT(ERROR)&&(encendido)) // LIMPIA LOS ERRORES { encendido=0; OUTPUT_LOW(LED_ENCENDIDO); OUTPUT_HIGH(LED_APAGADO); OUTPUT_LOW(NEON); } } // MODO NORMAL } // FUNCION PRINCIPAL