Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

RC5+atmega 8

Непрочитано 25.08.2012, 13:50  
Flopix
Гражданин KAZUS.RUN
 
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
Flopix на пути к лучшему
По умолчанию Re: RC5+atmega 8

miwutka, нормальная частота. Вторая задержка обычно не сильно по длительности отличается от первой.

Опишите в двух словах алгоритм подсчета первой и второй задержек.
Реклама:
Flopix вне форума  
Непрочитано 25.08.2012, 13:58  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: RC5+atmega 8

Ну код взят с одного сайта где чувак пишет все работает чуть ли не под любой пульт )) До майна таймер остановлен

#define Tmin 40 //длинный промежуток
#define Tmax 68
#define TminK 22 //короткий промежуток
#define TmaxK 34

interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Place your code here
rc5_ti_stop(); //останавливаем таймер
rc5_cl_buf(); //очищаем буффер
TIMSK|=0x40; //разрешаем прерывания по входу
GIFR=0x40; //сбрасываем флаг прерывания (если произошло)
}


void rc5_cl_buf(void){ //очищаем буффер
char i = 0;
for (i=0; i‹14; i++){ RC5_buffer [i] = 0; }
}


void rc5_ti_stop(void){ //остановка таймера
TIMSK|=0x00;
TCCR0 = 0x00;
TCNT0 = 0;
sct_bit = 0;
}


interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here


Timer = TCNT0; //запоминаем значение счетчика
Timer_buffer [x] = Timer;
x++;
TCNT0 = 0; //обнуляем счетчик
not_korr = 1;
if(sct_bit==0){ a++;
TCCR0 = 0x04; //запускаем таймер (31.250 KHz)
RC5_buffer [sct_bit] = !PIND.2;//записываем в эл.массива
sct_bit++; //+1 к счётчику принятых битов
centre = 1;
}else{ b++;
if ((Timer›TminK)&&(Timer‹TmaxK)){c++; // проверка короткого промежутка
if (centre) {d++;
centre = 0;
not_korr = 0;
}else{ e++;
centre = 1;
RC5_buffer [sct_bit] = !PIND.2;
sct_bit++;
not_korr=0;
};
};
if ((Timer›Tmin)&&(Timer‹Tmax)){ f++;// проверка длинного промежутка
RC5_buffer [sct_bit] = !PIND.2;
sct_bit++;
not_korr = 0;
};
if (not_korr == 1) { g++; // если не попали ни в один из промежутков то
rc5_ti_stop(); //останавливаем таймер
rc5_cl_buf(); //очищаем буффер
};
if (sct_bit == 14){k++; // если бит последний то
rc5_ti_stop(); //останавливаем таймер

trigger = RC5_buffer [2]; //формируем переменную тригера

device = (RC5_buffer [3] ‹‹ 4)|(RC5_buffer [4] ‹‹ 3)|(RC5_buffer [5] ‹‹ 2)|(RC5_buffer [6] ‹‹ 1)|RC5_buffer [7]; //формируем адрес ПДУ
command = (RC5_buffer [8] ‹‹ 5)|(RC5_buffer [9] ‹‹ 4)|(RC5_buffer [10] ‹‹ 3 )|(RC5_buffer [11] ‹‹ 2)|(RC5_buffer [12] ‹‹ 1)|RC5_buffer [13]; //формируем команду

//выводим данные на дисплей
//digit_out[0]=command%10; //перевод для 1 цифры
// command=command/10; //подготовка
// digit_out[1]=command%10; //перевод для 2 цифры

GIFR=0x40; // сбрасываем флаг прерывания по входу INT0
};
};

}

вот в двух словах как работает... Прерывание на любой фронт. Есть переменные контрольные х,a,b,c,d,e,f,g,k, чтобы видеть какое условие сколько раз выполнилось.
x=68
a=34
b=34
c,d,e=0
f=1
g=33
k=0
miwutka вне форума  
Непрочитано 25.08.2012, 13:59  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: RC5+atmega 8

это не весь код, но основа...
miwutka вне форума  
Непрочитано 25.08.2012, 14:02  
Flopix
Гражданин KAZUS.RUN
 
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
Flopix на пути к лучшему
По умолчанию Re: RC5+atmega 8

miwutka, или пишите свой алгоритм с нуля, я обязуюсь помочь советами, или спрашивайте у автора этого исходника.
Если в вашу задачу сейчас не входит развитие навыков программирования, то давайте я вам дам свой рабочий код, мне по нему во всяком случае проще будет советовать.

Контрольные переменные с именами х,a,b,c,d,e,f,g,k... это высший пилотаж оформления кода, который выкладываешь в паблик.

Последний раз редактировалось Flopix; 25.08.2012 в 14:24.
Flopix вне форума  
Непрочитано 25.08.2012, 14:32  
jump
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,009
Сказал спасибо: 0
Сказали Спасибо 4,955 раз(а) в 2,379 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: RC5+atmega 8

Сообщение от miwutka Посмотреть сообщение
Лог анализатор это тот же осцилограф думаю ))
смеется тот, кто не задает таких вопросов (пост #46) чтоб измерять форму этого сигнала, таймер должен минимум раз в 5-10 быстрее работать, чем измеряемая частота
Сообщение от miwutka Посмотреть сообщение
А за бабки можно всё что угодно. У нас в Запорожье всё и сводят токо к баблу...
дык без бабла, милок, писяй под кустиком, пока не сцапают
полез в электронику - раскошеливайся на инструмент, хотя б такой
jump вне форума  
Непрочитано 25.08.2012, 14:37  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: RC5+atmega 8

Сообщение от jump Посмотреть сообщение
смеется тот, кто не задает таких вопросов (пост #46) чтоб измерять форму этого сигнала, таймер должен минимум раз в 5-10 быстрее работать, чем измеряемая частота

дык без бабла, милок, писяй под кустиком, пока не сцапают
полез в электронику - раскошеливайся на инструмент, хотя б такой
понял... ну значит позже надобудет...
miwutka вне форума  
Непрочитано 25.08.2012, 14:38  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: RC5+atmega 8

Сообщение от Flopix Посмотреть сообщение
miwutka, или пишите свой алгоритм с нуля, я обязуюсь помочь советами, или спрашивайте у автора этого исходника.
Если в вашу задачу сейчас не входит развитие навыков программирования, то давайте я вам дам свой рабочий код, мне по нему во всяком случае проще будет советовать.

Контрольные переменные с именами х,a,b,c,d,e,f,g,k... это высший пилотаж оформления кода, который выкладываешь в паблик.
Я вообще хочу научиться программить, но может по вашему коду легче будет понять что и как, и пойму свои ошибки??.... В любом случае под каждый пульт прийдется плюс/минус переделывать код.....
miwutka вне форума  
Непрочитано 25.08.2012, 14:47  
Flopix
Гражданин KAZUS.RUN
 
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
Flopix на пути к лучшему
По умолчанию Re: RC5+atmega 8

Вот мой код. Там правда много лишнего так как он отсылает данные по USB на ПК. Но думаю разберетесь. Весь прием кода рабатает в подпрограммах прерывания. Да обратите внимания что частота таймера у меня установлена выше чем в вашем примере.


Из моего примера вам понадобятся функции:

//подпрограмма прерывания по переполнению Timer0
ISR(TIMER0_OVF_vect)

//подпрограмма прерывания по INT1
ISR(SIG_INTERRUPT1)

Ну и настройки таймера из void init_devices(void) возьмите.
Вложения:
Тип файла: zip Hid_example_firmware.zip (5.0 Кб, 70 просмотров)

Последний раз редактировалось Flopix; 25.08.2012 в 14:50.
Flopix вне форума  
Сказали "Спасибо" Flopix
miwutka (25.08.2012)
Непрочитано 25.08.2012, 14:57  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: RC5+atmega 8

Сообщение от miwutka Посмотреть сообщение
Ну код взят с одного сайта где чувак пишет все работает чуть ли не под любой пульт )) До майна таймер остановлен
Вообще не моя тема, но глаз споткнулся на портовом вопле грузчиков - "МАЙНА". "Вира" тоже из их лексикона. Главный модуль программы звучит МЭЙН, пишется main. Вы же не озвучиваете ТАБЛИЦА фразой ТАБЛЕ ...
Ну и не мешало бы тегами обрамления кода пользоваться. Иначе просто не хочется в текст программы вникать.

Не обижайтесь, легкий комментарий. Я за подобное в свой адрес благодарю... (не напрашиваюсь)
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 25.08.2012, 15:01  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: RC5+atmega 8

Сообщение от ut1wpr Посмотреть сообщение
Вообще не моя тема, но глаз споткнулся на портовом вопле грузчиков - "МАЙНА". "Вира" тоже из их лексикона. Главный модуль программы звучит МЭЙН, пишется main. Вы же не озвучиваете ТАБЛИЦА фразой ТАБЛЕ ...
Ну и не мешало бы тегами обрамления кода пользоваться. Иначе просто не хочется в текст программы вникать.

Не обижайтесь, легкий комментарий. Я за подобное в свой адрес благодарю... (не напрашиваюсь)
я думаю код итак понятен в кратце, если ВЫ опытный программер. Если я в кодах без коментариев разбираюсь в общем, то вы тем более. Непонимаю этих подробных описаний как для новичков. Коментарий норм, но только вы ведь не говорите "пОйду в магазин", а говорите "пАйду", и форум не урок русского языка Лучше подкидывайте решения, а не советы как слова писать
miwutka вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Декодер RC5 vmax1987 Микроконтроллеры, АЦП, память и т.д 38 25.08.2010 22:26
RC5 transmitter Saadov Микроконтроллеры, АЦП, память и т.д 12 22.12.2008 21:08
Приемник RC5 в малом корпусе? Muzicant Микроконтроллеры, АЦП, память и т.д 1 17.02.2008 11:57
Совмещение динамической индикации и приема команд RC5 megAdriVeR Микроконтроллеры, АЦП, память и т.д 22 24.07.2007 21:18
Декодирование команд RC5 R_V_A Микроконтроллеры, АЦП, память и т.д 10 20.12.2006 19:52


Часовой пояс GMT +4, время: 21:30.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.