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

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

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

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

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

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

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

 
Опции темы
Непрочитано 14.05.2007, 22:37  
idmg
Частый гость
 
Регистрация: 24.04.2007
Сообщений: 29
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
idmg на пути к лучшему
По умолчанию Помогите разобраться с программой для ATmega16

Начал работать с микроконтроллерами. Собрал тест-плату для ATmega16 c кнопкой и переключателем. Написал простенькую программку на С в CodeVision для мигания светодиодами - РС1, РС5.
Алгоритм следующий: 1. Включаем переключатель (РD3=0), 1а. Если кнопка нажата (РС5=0) то попадаем в подпрограмму где увеличивается значение переменной ctr, (отвечающей за задержку мигания) и светодиоды РС1, РС5 несинфазно мигают с задержкой ctr. 1b. Если кнопка не нажата (РС5=1) то значение переменной ctr не увеличивается и светодиоды РС1, РС5 несинфазно мигают с задержкой ctr. При симуляции в VMlab и в реальной плате все работает как надо, почти... при включении PD3 диоды начинают мигать с задержкой 1ms как и положено, но спустя примерно 850ms значение задержки становится больше, хотя значение ctr не меняется. Помогите плиз, бьюсь неделю в чем может быть дело? Код прилагаю

Прикрепленный файл: 5669949.rar
Реклама:
idmg вне форума  
Непрочитано 14.05.2007, 22:56  
dimonbest
Гражданин KAZUS.RU
 
Аватар для dimonbest
 
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
dimonbest на пути к лучшему
По умолчанию

Код:
void btn(void){
 ctr+=5;  PORTA.2=0;     
 PORTC.1=0; PORTD.1=1; delay_ms(ctr); 
PORTC.1=1; PORTD.1=0; delay_ms(ctr);  
if (ctr›245){PORTB.2=0;} if (ctr‹245){PORTB.2=1;} 
}

void main (void){
MCUCSR=0xF0;MCUCSR=0xF0;
// ---port initialization---
PORTA=0xFF;
DDRA=0xFF;

PORTC=0xFF;
DDRC=0xDF;

PORTB=0xFF;
DDRB=0xFF;

PORTD=0xFF;
DDRD=0xE7;

while (1){
while (PIND.3==1) {PORTA.2=1; PORTC.1=1; PORTB.2=1; PORTD.1=1;}
while (PINC.5==0) {btn(); }
PORTA.2=0; PORTC.1=0; PORTD.1=1; delay_ms(ctr); 
PORTC.1=1; PORTD.1=0; delay_ms(ctr); 
if (ctr›245){PORTB.2=0; } if (ctr‹245){PORTB.2=1;}
Честно говоря не видел чтобы так разметку программы делали... можно вообще всю программу в одну строчку написать, только кто в этом разбираться захочет??? И обычно выкладывают не только исходник, а и весь проект... После этого можно и поискать ошибочку...
dimonbest вне форума  
Непрочитано 15.05.2007, 07:36  
MasterM12
Частый гость
 
Регистрация: 25.01.2007
Адрес: Омск
Сообщений: 40
Сказал спасибо: 5
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
MasterM12 на пути к лучшему
По умолчанию

а у тебя случайно не переполняется сторожевой таймер? выключи его или периодически сбрасывай
MasterM12 вне форума  
Непрочитано 15.05.2007, 08:22  
dimonbest
Гражданин KAZUS.RU
 
Аватар для dimonbest
 
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
dimonbest на пути к лучшему
По умолчанию

Может у меня "повылазило", но я не вижу здесь инициализации сторожеого тамера, а по умолчанию он выключен...
dimonbest вне форума  
Непрочитано 15.05.2007, 08:39  
MasterM12
Частый гость
 
Регистрация: 25.01.2007
Адрес: Омск
Сообщений: 40
Сказал спасибо: 5
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
MasterM12 на пути к лучшему
По умолчанию

насколько я помню, когда я работал c CodeVision меня была проблема со сторожевым таймером, он был ПО УМОЛЧАНИЮ ВКЛЮЧЕН, не было времени разбираться с его регистром, чтоб отключить, просто периодически стал его сбрасывать, и все работало. Сейчас перешел VMLab - эта проблема решилась сама собой
MasterM12 вне форума  
Непрочитано 15.05.2007, 08:46  
dimonbest
Гражданин KAZUS.RU
 
Аватар для dimonbest
 
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
dimonbest на пути к лучшему
По умолчанию

Честно говоря работаю с CodeVisionAVR уже более года и такого не встречал... А vmlab это же отладчик а не компилятор???
dimonbest вне форума  
Непрочитано 15.05.2007, 09:37  
MasterM12
Частый гость
 
Регистрация: 25.01.2007
Адрес: Омск
Сообщений: 40
Сказал спасибо: 5
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
MasterM12 на пути к лучшему
По умолчанию

отладчик и компилятор, мне кажется более функциональный, чем CodeVision, хотя я могу и ошибаться, т.к. не много с ним работал, не изучил все его функции
MasterM12 вне форума  
Непрочитано 15.05.2007, 09:48  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Я не разбираюсь в авр, но как сtr может увеличиваться, если оно забито в памяти программ???
eeprom unsigned char ctr=1;
И где защита от переполнения? так и должно быть ?
urry вне форума  
Непрочитано 15.05.2007, 10:43  
AndryG
Вид на жительство
 
Регистрация: 22.06.2006
Адрес: Украина
Сообщений: 308
Сказал спасибо: 19
Сказали Спасибо 32 раз(а) в 24 сообщении(ях)
AndryG на пути к лучшему
По умолчанию

idmg, простите за посторонний вопрос ... Вы, случайно, не с страничек avr123_nm_ru начали познавать микроконтроллеры?
AndryG вне форума  
Непрочитано 15.05.2007, 12:36  
Kuzmi4
Частый гость
 
Регистрация: 12.05.2007
Сообщений: 38
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
Kuzmi4 на пути к лучшему
По умолчанию

Лично моё мнение конечно - выкиньте кодвижн и поставьте винавр с аврстудией - море удовольствий - заодно и привыкнете к гцц- под него есть много портированных для авр-ов вещей(мона иар конечно взять - но там денежки плотить надо чтоб без проблем работать - а тут бесплатно - все дела..)
В общем советовал бы начать писать на гцц используя виавр - там если вшить его в аврстудию - есть такая вещ как симулятор + возможность смотреть исполняемый код - на начальных этапах самое то..
А если вы кумите житаг(200 баксов и море удовольствия) то вообще вам счастье будет - там внутрисхемный отладчик с удобным интерфейсом...
Kuzmi4 вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите не испортить Atmega16 ESWANT Микроконтроллеры, АЦП, память и т.д 10 25.07.2009 15:16
помогите чайнику с программой igor9999 Микроконтроллеры, АЦП, память и т.д 2 14.02.2009 01:46
Помогите с программой к МК Daimonn Микроконтроллеры, АЦП, память и т.д 54 24.07.2008 10:27
АЦП - для чайника (помогите разобраться)! Apach111 Электроника - это просто 2 30.05.2008 10:10
Помогите разобраться с программой на PIC16F628 eslizh Микроконтроллеры, АЦП, память и т.д 17 04.12.2007 23:47


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


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