| пульт протокол NEC | 
| 
				
			 | 
| 
| bulat | Дата: Пятница, 03.06.2016, 19:20 | Сообщение # 1 |  |   Группа: Проверенные Сообщений: 108 
 Статус: 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 |  |   Группа: Проверенные Сообщений: 108 
 Статус: Offline | спасибо-то что надо! у меня часы с термометром и будильником на атмега16,памяти свободной море
 у моего телевизора нет часов и будильника,хочу к своим часам приспособить ик-диод и вкл тв по будильнику
 P.S.тот исходник работает в железе,занимает всего 24 % аттини13,но повторюсь-в си я мало шарю...
 
 
 |  
 |  |  |  |