[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
пульт протокол 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,но повторюсь-в си я мало шарю...


 
  • Страница 1 из 1
  • 1
Поиск: