пульт протокол NEC
|
|
bulat | Дата: Пятница, 03.06.2016, 19:20 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 110
Статус: Offline
| пытаюсь собрать пульт протокола NEC,на си получилось но я в нем не разбираюсь толком,можно ли переделать в баском авр?исходник на си на аттини13,просто перебор команд(адрес устройсва 128) #include <tiny13a.h> #include <delay.h> #define PulseON TCCR0A=0x42;TCCR0B=0x01 #define PulseOFF TCCR0A=0x00;TCCR0B=0x00 unsigned char com=0; void Gen_NEC_Byte(unsigned char dat) //Генерация одного байта по NEC { unsigned char i; for(i=0;i<8;i++) {PulseON; //подать частоту 36000 delay_us(540); PulseOFF; //выключить частоту 36000 if(dat&1)delay_us(1629);//если бит = 1 то ждем 1,58 мс else delay_us(540); //если бит = 0 то ждем 0,46 мс dat>>=1; }} void Gen_NEC_Code(unsigned char adr, unsigned char cmd) // Генерация всей комманды по NEC { PulseON; // стартовая последовательность delay_us(8678); PulseOFF; delay_us(4339); Gen_NEC_Byte(adr); // генерация адресса Gen_NEC_Byte(~adr); // генерация инверсии адресса Gen_NEC_Byte(cmd); // генерация комманды Gen_NEC_Byte(~cmd); // генерация инверсии комманды PulseON; // завершающий синхроимпульс delay_us(660); PulseOFF;}
void main(void) {#pragma optsize- CLKPR=0x80; CLKPR=0x00; #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif PORTB=0x00; DDRB=0x01; TCCR0A=0x42; TCCR0B=0x01; TCNT0=0x00; OCR0A=0x3F; OCR0B=0x00; GIMSK=0x00; MCUCR=0x00; TIMSK0=0x00; ACSR=0x80; ADCSRB=0x00;
while (1) {Gen_NEC_Code(128,com); com++; delay_ms(150); }; }
|
|
| |
GSV | Дата: Пятница, 03.06.2016, 19:30 | Сообщение # 2 |
Группа: Друзья
Сообщений: 38
Статус: Offline
| bulat, Боюсь тини13 не сдюжит.Вот здесь всё,что я накопал по NEC- https://yadi.sk/d/D4QsCen2sEgks
Сообщение отредактировал GSV - Пятница, 03.06.2016, 19:32 |
|
| |
bulat | Дата: Суббота, 04.06.2016, 05:33 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 110
Статус: Offline
| спасибо-то что надо! у меня часы с термометром и будильником на атмега16,памяти свободной море у моего телевизора нет часов и будильника,хочу к своим часам приспособить ик-диод и вкл тв по будильнику P.S.тот исходник работает в железе,занимает всего 24 % аттини13,но повторюсь-в си я мало шарю...
|
|
| |