реклама на сайте
подробности

 
 
> Простенькая программка измерения длительности импульса.
Зверюга
сообщение Aug 30 2008, 07:37
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563



Здравствуйте. Подкиньте пожалуйста примерчик на CodeVision для непрерывного измерения длительности импульса контроллером AVR.

Я так прикидываю, что нужно запускать по прерыванию с пина таймер, по следующему прерыванию останавливать, читать сколько натикало, сбрасывать и вновь запускать. Дискретность - максимально возможная для таймера в atmega32.

В интернете видел только готовые очень мудрые проекты, выдрать из которых суть сложновато, да и то для IAR и WinAVR.


Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Зверюга
сообщение Aug 31 2008, 17:46
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563



Подпаял резистор, конденсатор ненашел. Все равно ресетится, но уже со значением MCUCSR=0x01, то есть бит, означающий что на ресет подан низкий уровень равен нулю.

Вопрос: значит, ресет от помех все-таки был, сейчас помеха (0 на ресете) не вылазит - мне искать конденсатор? Проблема то вроде устранена.

ПРо ватчдог я соврал - сейчас проверяю включен он или выключен.


Так, если я правильно понял:

Цитата
Для того, чтобы включить сторожевой таймер, достаточно установить в 1 бит WDE -Watch Dog Enable.
А вот выключить так просто не получится - и сделано это для защиты от тех же сбоев... Для выключения надо проделать следующие действия:
Записать одновременно в WDE и WDTOE значения "1"
В течение 4-х тактов процессора записать "0" в WDE.


ТО выключить сторожевой таймер если он включен нужно так:
WDTCR=0x18;
WDTCR=0x10;


Делаю это. Происходит ресет со значением WDTCR=0, MCUCSR=1; То же и без принудительного выключения. Кстати, почему вы решили что он включен - по умолчанию он ведь выключен.
Что за бред....

BOD - если вы имеете ввиду фьюзы, то у меня BODEN=1.

Далее.....

Последовал совету:
Цитата
Следовательно, если в программе нужно определять режим сброса - то после анализа этих бит их просто нужно установить в "0". Тогда сброс по сторожевому таймеру можно будет определить по отсутствию "1" в вышеописанных битах.


Сделал так:
Код
void main(void)
{  

//WDTCR=0x18;      
//WDTCR=0x10;


lcd_init();
backcolor=black;
textcolor=yellow;

lcd_clr();        
fill_screen(black);          

lcd_setxy(20,20);
lcd_str_fl("MCUCSR=",f8x14, textcolor);
lcd_str_ram(MCUCSR,f8x14, textcolor);
lcd_setxy(20,40);
lcd_str_fl("WDTCR=",f8x14, textcolor);
lcd_str_ram(WDTCR,f8x14, textcolor);

MCUCSR=0x00;
delay_ms(3000);
INT_ON; это включение прерывания, установлено черех #define


    
}



В итоге на экран выводится
WDTCR=0,
MCUCSR=0;

Получается что сброс по сторожевому таймеру?

Убираю комментарии со строк WDTCR=0x18; WDTCR=0x10; (опять таки, если я правильно понял как отключить сторожа) - тот же эффект.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Зверюга   Простенькая программка измерения длительности импульса.   Aug 30 2008, 07:37
- - rv3dll(lex)   Цитата(Зверюга @ Aug 30 2008, 11:37) Здра...   Aug 30 2008, 08:00
|- - sKWO   Цитата(rv3dll(lex) @ Aug 30 2008, 11...   Aug 30 2008, 08:30
- - Зверюга   бр.... оговорился... мне период и нужен. Не значю ...   Aug 30 2008, 12:00
|- - sKWO   запускайте таймер который имеет режим захвата во ф...   Aug 30 2008, 14:14
- - Зверюга   Господа, слишком непонятно и поверхностно... Ни ст...   Aug 30 2008, 15:29
|- - sKWO   Цитата(Зверюга @ Aug 30 2008, 18:29) Я во...   Aug 30 2008, 19:53
- - Зверюга   Боюсь Ваш метод мне не подойдет. Объясню: время не...   Aug 31 2008, 13:25
|- - sKWO   Вы глобально не разрешили прерывания. инициализаци...   Aug 31 2008, 13:57
- - Зверюга   ЦитатаЖКИ графический, успеет? четыре милисекунды ...   Aug 31 2008, 14:13
|- - sKWO   Цитата(Зверюга @ Aug 31 2008, 17:13) Проч...   Aug 31 2008, 14:31
- - Зверюга   Спасибо конечно, но вот разрешение прерываний не д...   Aug 31 2008, 14:53
|- - sKWO   Цитата(Зверюга @ Aug 31 2008, 17:53) ЭТО ...   Aug 31 2008, 15:18
- - Зверюга   ЦитатаКак у Вас организован внешний сброс? Чё к р...   Aug 31 2008, 15:20
|- - sKWO   Цитата(Зверюга @ Aug 31 2008, 18:20) К ре...   Aug 31 2008, 15:33
|- - sKWO   Цитата(Зверюга @ Aug 31 2008, 20:46) Полу...   Aug 31 2008, 18:53
- - Зверюга   Вы по-моему опережаете события... Я не решил пробл...   Aug 31 2008, 19:06
|- - sKWO   Цитата(Зверюга @ Aug 31 2008, 22:06) Я вс...   Aug 31 2008, 19:23
- - Зверюга   ТАК, ПОХОЖЕ ГЛЮК ВСЕ ТАКИ СВЯЗАН С БИБЛИОТЕКОЙ ЖКИ...   Aug 31 2008, 19:39
|- - rezident   Цитата(Зверюга @ Sep 1 2008, 01:39) Госпо...   Aug 31 2008, 21:16
|- - sKWO   Цитата(Зверюга @ Aug 31 2008, 22:39) Code...   Sep 1 2008, 17:23
- - Зверюга   Вы не правы. Это наименее вероятная причина. Функц...   Sep 1 2008, 03:17
- - Cyber_RAT   замените для чистоты эксперимента функцию на асме ...   Sep 2 2008, 04:40
- - Зверюга   Цитатазамените для чистоты эксперимента функцию на...   Sep 2 2008, 05:20


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 18:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01395 секунд с 7
ELECTRONIX ©2004-2016