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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Декодер RC5

Непрочитано 19.07.2007, 16:01  
vmax1987
Частый гость
 
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
vmax1987 на пути к лучшему
По умолчанию Декодер RC5

Питаюсь написать прошивку но ничего не виходит, пишу в CodeVisionAVR, в качестве методического пособия програма

Прикрепленный файл: 6679265.rar
Реклама:
vmax1987 вне форума  
Непрочитано 19.07.2007, 16:10  
vmax1987
Частый гость
 
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
vmax1987 на пути к лучшему
По умолчанию

Вот моя программа
Код:
#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
vmax1987 вне форума  
Непрочитано 19.07.2007, 16:42  
dimonbest
Гражданин KAZUS.RUN
 
Аватар для dimonbest
 
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
dimonbest на пути к лучшему
По умолчанию

А зачем другая прошивка если есть уже рабочая, которая у тебя в приложении?
dimonbest вне форума  
Непрочитано 19.07.2007, 16:53  
vmax1987
Частый гость
 
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
vmax1987 на пути к лучшему
По умолчанию

Рабочая прошивка написана в WINAVR, я хочу переписать в CodeVision. В новой программе я изменил названия функцый прерывания, удалил функцию мигания светодиода. Хочи только виводить результат в порт.
vmax1987 вне форума  
Непрочитано 19.07.2007, 16:56  
vmax1987
Частый гость
 
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
vmax1987 на пути к лучшему
По умолчанию

строчка в winavr
while((bit_is_set(PIND, RC5))&&(count‹16)) WAIT;
означает
while((PIND.2==1)&&(count‹16)) WAIT;
????????????????????????
если да то почему не работает?
vmax1987 вне форума  
Непрочитано 19.07.2007, 17:33  
dimonbest
Гражданин KAZUS.RUN
 
Аватар для dimonbest
 
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
dimonbest на пути к лучшему
По умолчанию

Сообщение от 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; 
}
dimonbest вне форума  
Непрочитано 19.07.2007, 20:36  
vmax1987
Частый гость
 
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
vmax1987 на пути к лучшему
По умолчанию

Отлажую в железе, на виходе 0х01, такое ощущение што переменная дата не сдвигаетса, што может бить? вроде все правильно.
Есть ли для протеуса кодер RC5?
vmax1987 вне форума  
Непрочитано 19.07.2007, 22:18  
dimonbest
Гражданин KAZUS.RUN
 
Аватар для dimonbest
 
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
dimonbest на пути к лучшему
По умолчанию

Для протеуса нет, но можно добавить еще один контроллер, в котором написать програмку передачика RC5 и выход подключить к основному контроллеру вместо фотоприемника, и таким способом отлаживать...
dimonbest вне форума  
Непрочитано 19.07.2007, 22:23  
AndreiVV
Гражданин KAZUS.RUN
 
Регистрация: 29.06.2006
Сообщений: 638
Сказал спасибо: 37
Сказали Спасибо 56 раз(а) в 41 сообщении(ях)
AndreiVV на пути к лучшему
По умолчанию

Цитата:
Есть ли для протеуса кодер RC5?
Нет, но есть генераторы с помощью которых можно сделать необходимый сигнал. В архиве вариант, сам пока не разбирался (проект не мой в сети нашел)

Прикрепленный файл: 894089.zip
AndreiVV вне форума  
Непрочитано 19.07.2007, 22:49  
vmax1987
Частый гость
 
Регистрация: 25.10.2005
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
vmax1987 на пути к лучшему
По умолчанию

Спасибо, буду разбиратса, ето уже дело принципа.
Компилировал в WINAVR все работает, почему в codevision не хочет?
vmax1987 вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
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, время: 18:34.


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