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

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

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

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

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

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

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

 
Опции темы
Непрочитано 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.RU
 
Аватар для 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.RU
 
Аватар для 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.RU
 
Аватар для dimonbest
 
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
dimonbest на пути к лучшему
По умолчанию

Для протеуса нет, но можно добавить еще один контроллер, в котором написать програмку передачика RC5 и выход подключить к основному контроллеру вместо фотоприемника, и таким способом отлаживать...
dimonbest вне форума  
Непрочитано 19.07.2007, 22:23  
AndreiVV
Гражданин KAZUS.RU
 
Регистрация: 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, время: 20:09.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot