Страница 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
задвоение определений у вас - сами исходники правили или откуда они взялись?