Люди помогите, не могу разобратца: Спаял схему (в ней все ровно), для записи сигнала (IR) с пульта от ТВ. Записать надо одну кнопку. Написал (как смог) прошивку, прошил, не работает. Уверен дело в прошивке, объясните пожалуйста что не правильно. Я уже все перепробовал лампочки мигают, кнопки работают, а сигнал записывать не хочет. В предоставленном мной исходнике я кнопки убрал. У меня в принципе два вопроса: 1) Как принять эти 128 бит с PIN_B0? 2) И как отправить их с PIN_A0? Прошу сильно не матюкатца я только учусь. Благодарю за внимание!!!
| Код | #include <16F628A.h>
#FUSES NOWDT #FUSES XT #FUSES NOPUT #FUSES NOPROTECT #FUSES BROWNOUT #FUSES MCLR #FUSES LVP #FUSES NOCPD
#use delay(clock=20000000)
//------------------Обозначение диоов----------------------------------------// #define led_k_on output_high(PIN_A1) #define led_k_off output_low(PIN_A1) #define led_z_on output_high(PIN_A2) #define led_z_off output_low(PIN_A2)
//------------------Обоначение приемо-перидатчика (Irda)---------------------// #define ir_in PIN_B0 #define ir_out PIN_A0
//------------------Обозначение кнопок---------------------------------------// #define but_in PIN_B4 #define but_out PIN_B5 #define but_dell PIN_B6
//------------------Глобaльные перименные-------------------------------------// typedef unsigned char b_8; unsigned int dell; b_8 buf[16];
//------------------Проверка на наличие записи-------------------------------// int test_eep() { if(read_eeprom(0) != 0xff) return true; else return false; }
//------------------Прием сигнала-------------------------------------------// void but_in_ok() { led_z_off; led_k_on; while(true) { if(input(ir_in)) { buf[0] = input_b(); write_eeprom(0, buf[0]); }; }; } //------------------Передача сигнала----------------------------------------// void but_out_ok() { led_k_off; while(true) { led_z_on; buf[0] = read_eeprom(0x00); buf[1] = read_eeprom(0x01); buf[2] = read_eeprom(0x02); buf[3] = read_eeprom(0x03); buf[4] = read_eeprom(0x04); buf[5] = read_eeprom(0x05); buf[6] = read_eeprom(0x06); buf[7] = read_eeprom(0x07); buf[8] = read_eeprom(0x08); buf[9] = read_eeprom(0x09); buf[10] = read_eeprom(0x0a); buf[11] = read_eeprom(0x0b); buf[12] = read_eeprom(0x0c); buf[13] = read_eeprom(0x0d); buf[14] = read_eeprom(0x0e); buf[15] = read_eeprom(0x0f); output_a(buf); delay_ms(500); led_z_off; ); }
//------------------Начало программы----------------------------------------// void main() { setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); setup_oscillator(False); set_tris_a(0x00); set_tris_b(0xff); // while(true) // { switch(test_eep) { case true: but_out_ok(); break; case false: but_in_ok(); break; default: }; // }; }
|
|