Страница 1 из 1

Записывание даных скорости ветра на ATmega16

Добавлено: Вс фев 01, 2015 18:37:17
stm
Пишу прогу в CVAVR для анемометра за основу была взята статья http://avr-start.ru/?p=883 про внешные прерывания
Дополнительно добавил часовой кварц для точного счета времени,кнопку , а также временно подключил LCD 1602 для отладки.
Собрал в железе работает показывает скорость нажатия на кнопку за сек, теперь хочу добавить среднюю скорость но незнаю как это зделать програмно чтоб вычислить среднюю скорость за 24 часа ну а вычислиную скорость ветра записывать на sd карту но до этого еще далеко...

Прошу подсказать как это можна реализовать
Буду благодарен за любую информацию :)

Re: Записывание даных скорости ветра на ATmega16

Добавлено: Вс фев 01, 2015 19:58:53
pyzhman
stm писал(а):показывает скорость нажатия на кнопку за сек
Не понятно. Скорость ветра вроде как должна показываться?
А среднее ищется по простой формуле. Берем несколько отсчетов и делим на количество этих отсчетов. Будет среднее арифметическое. Если за сутки, т.е. 24 часа, и отсчеты каждую секунду, то сохраненные предварительно отсчеты в буфере размером 60*60*24 складываем и делим на 86400.

Re: Записывание даных скорости ветра на ATmega16

Добавлено: Вс фев 01, 2015 21:01:50
stm
Спасибо за ответ
Да мерять хочу ветер

С средним значением понятно но ветер есть не всегда и тогда делить наверно надо на время когда анемометр был в работе, мне интересно как подсчитать робочее время использовать отдельный таймер или что

Re: Записывание даных скорости ветра на ATmega16

Добавлено: Пн фев 02, 2015 06:35:24
pyzhman
Секунду назад ветер был 4м/с, сейчас 0м/с. (4+0)/2= 2м/с. И т.д.
Рабочее время и всё остальное можно считать одним таймером. Организовать разные счётчики. Например

Код: Выделить всё

void timer0(void)
{
if(++countTime1 > 100)
    {
    countTime1= 0;
// прошло N времени
// делаем необходимое
    }
if(++countTime2 > 75)
    {
    countTime2= 0;
// прошло K времени
// делаем необходимое
    }
}

Re: Записывание даных скорости ветра на ATmega16

Добавлено: Пн фев 02, 2015 18:19:10
stm
Спасибо попробую

Re: Записывание даных скорости ветра на ATmega16

Добавлено: Вт фев 03, 2015 07:36:30
stm
Написал так как в вашем примере возник ло несколько вопросов
-В какой части программы должен быть код.
-В строчке void timer0(void) писать названия таймера за которым будут работать счетчики в моем случае timer2_comp.
-Надо ли обявлять countTime1 countTime2 потому что CVAVR выдает ошибки Error: m.c(86): undefined symbol 'countTime1' Error: m.c(92): undefined symbol 'countTime2', весь код счетчиков у меня стоит сразу за прерыванием второго таймера

Re: Записывание даных скорости ветра на ATmega16

Добавлено: Вт фев 03, 2015 20:09:53
pyzhman
-В какой части программы должен быть код.
В той, где обрабатывается таймер. Предполагается подпрограмма обработки прерывания таймера0.


-В строчке void timer0(void) писать названия таймера за которым будут работать счетчики в моем случае timer2_comp.
timer0 написан для примера. Вы должны использовать свой, хоть нулевой, хоть первый, хоть второй.


-Надо ли обявлять countTime1 countTime2 потому что CVAVR выдает ошибки Error: m.c(86): undefined symbol 'countTime1' Error: m.c(92): undefined symbol 'countTime2', весь код счетчиков у меня стоит сразу за прерыванием второго таймера
Конечно надо.

Re: Записывание даных скорости ветра на ATmega16

Добавлено: Чт фев 05, 2015 14:57:07
stm
С этим разобрался теперь надо придумать как измеряные даные записать на SD карту в файл txt или csv пробовал впихнуть библиотеку FatFs но невлезла, попробую поставить Petit FAT
Вопрос как сделать запись чтоб даные записывались попорядку согласно смене переменной "d" у меня она добавляется кадждые 24 часа
Например: d1-12
d2-7
...... и т.д

Re: Записывание даных скорости ветра на ATmega16

Добавлено: Пт фев 06, 2015 11:53:07
stm
Пробую Petit fat не компилируется выбивает ошибку Error: diskio.c(47): declaration 'enum DRESULT' is incompatible with the previous one: 'flash enum DRESULT' from file: 'diskio.h', line: 33

и выделяет DRESULT disk_writep {

кто работал с pff мож подскажете что делать?

Re: Записывание даных скорости ветра на ATmega16

Добавлено: Сб фев 14, 2015 16:39:46
stm
Никто незнает с чем связана ошибка?

Re: Записывание даных скорости ветра на ATmega16

Добавлено: Сб фев 14, 2015 21:27:58
ARV
вам же нормально компилятор сообщает: определение enum DRESULT в файле diskio.c не совпадает с ранее сделанным определением flash enum DRESULT в файле diskio.h

задвоение определений у вас - сами исходники правили или откуда они взялись?