Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
19.07.2007, 16:01
|
|
Частый гость
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Декодер RC5
Питаюсь написать прошивку но ничего не виходит, пишу в CodeVisionAVR, в качестве методического пособия програма
Прикрепленный файл: 6679265.rar
|
|
|
|
19.07.2007, 16:10
|
|
Частый гость
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Вот моя программа
Код:
|
#include ‹mega8.h›
#include ‹delay.h›
#define WAIT { while(tm==0); tm=0; count++;}
#define RC5addr 0x00
volatile unsigned char tm;
volatile unsigned char clock=0x91;
volatile unsigned char dat;
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{ tm=1;
TCNT0=clock;
}
void rc5decoder(void){
unsigned char count,h,j;
unsigned int data=0x0001;
TCCR0=0x01;
TIMSK=0x01;
TCNT0=clock;
#asm("sei")
tm=0;
count=0;
while((PIND.2==0)&&(count‹11)) WAIT; //=48
if ((count › 6)&&(count ‹ 11)) {
while (count ‹ 14) WAIT;
for (h=0; h‹13; h++){
data = data ‹‹ 1;
if (PIND.2==1){
data |= 0x0001;
count=0;
while((PIND.2==0)&&(count‹16)) WAIT;
}
else{
data &= 0xFFFE;
count=0;
while((PIND.2==1)&&(count‹16)) WAIT;}
if (count == 16) {
data = 0;
break;}
for (j=0; j ‹ 12; j++) WAIT;
}
if(((data ››6) & 0x1F) != RC5addr) data=0; //Ошибка=68
}
TIMSK=0x00;
data=(data & 0x3F);
dat=(unsigned char)(data);
}
interrupt [EXT_INT0] void ext_int0_isr(void){
GICR|=0x00;
rc5decoder ();
PORTB = dat;
delay_ms(1000);
PORTB=0;
GICR|=0x40;
}
void main(void){
PORTB=0x00;
DDRB=0xff;
PORTD=0xFF;
DDRD=0xFB;
GICR|=0x40;
MCUCR=0x02;
#asm("sei")
while (1){
};
} |
программа та шо в архиве нормально работает, а моя неработает, в чем ошибка немогу понять.
ПОМОГИТЕ!!!!
Вот проект в CodeVision[/list]
Прикрепленный файл: 658766.rar
|
|
|
|
19.07.2007, 16:42
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
А зачем другая прошивка если есть уже рабочая, которая у тебя в приложении?
|
|
|
|
19.07.2007, 16:53
|
|
Частый гость
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Рабочая прошивка написана в WINAVR, я хочу переписать в CodeVision. В новой программе я изменил названия функцый прерывания, удалил функцию мигания светодиода. Хочи только виводить результат в порт.
|
|
|
|
19.07.2007, 16:56
|
|
Частый гость
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
строчка в winavr
while((bit_is_set(PIND, RC5))&&(count‹16)) WAIT;
означает
while((PIND.2==1)&&(count‹16)) WAIT;
????????????????????????
если да то почему не работает?
|
|
|
|
19.07.2007, 17:33
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Сообщение от vmax1987
|
строчка в winavr
while((bit_is_set(PIND, RC5))&&(count‹16)) WAIT;
означает
while((PIND.2==1)&&(count‹16)) WAIT;
????????????????????????
если да то почему не работает?
|
Это вроде как правильно...
А в чем пытаешься отлаживать? В протеусе или в железе?
Код:
|
interrupt [EXT_INT0] void ext_int0_isr(void){
GICR|=0x00;
rc5decoder ();
PORTB = dat;
delay_ms(1000);
PORTB=0;// возможно сдесь надо очистить влаг прерывания: GIFR|=0x40;
GICR|=0x40;
} |
|
|
|
|
19.07.2007, 20:36
|
|
Частый гость
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Отлажую в железе, на виходе 0х01, такое ощущение што переменная дата не сдвигаетса, што может бить? вроде все правильно.
Есть ли для протеуса кодер RC5?
|
|
|
|
19.07.2007, 22:18
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Для протеуса нет, но можно добавить еще один контроллер, в котором написать програмку передачика RC5 и выход подключить к основному контроллеру вместо фотоприемника, и таким способом отлаживать...
|
|
|
|
19.07.2007, 22:23
|
|
Гражданин KAZUS.RU
Регистрация: 29.06.2006
Сообщений: 638
Сказал спасибо: 37
Сказали Спасибо 56 раз(а) в 41 сообщении(ях)
|
Цитата:
|
Есть ли для протеуса кодер RC5?
|
Нет, но есть генераторы с помощью которых можно сделать необходимый сигнал. В архиве вариант, сам пока не разбирался (проект не мой в сети нашел)
Прикрепленный файл: 894089.zip
|
|
|
|
19.07.2007, 22:49
|
|
Частый гость
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Спасибо, буду разбиратса, ето уже дело принципа.
Компилировал в WINAVR все работает, почему в codevision не хочет?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
F/2F декодер на AVR
|
Pupsi007 |
Микроконтроллеры, АЦП, память и т.д |
1 |
29.12.2008 15:38 |
RC5 transmitter
|
Saadov |
Микроконтроллеры, АЦП, память и т.д |
12 |
22.12.2008 21:08 |
Приемник RC5 в малом корпусе?
|
Muzicant |
Микроконтроллеры, АЦП, память и т.д |
1 |
17.02.2008 11:57 |
Декодирование команд RC5
|
R_V_A |
Микроконтроллеры, АЦП, память и т.д |
10 |
20.12.2006 19:52 |
DTMF декодер
|
Tcom |
Микроконтроллеры, АЦП, память и т.д |
9 |
29.09.2005 17:53 |
Часовой пояс GMT +4, время: 20:09.
|
|