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

 
 
 
Reply to this topicStart new topic
> AVR. Программа тахометра
Serega_0180
сообщение Jul 26 2009, 12:01
Сообщение #1





Группа: Участник
Сообщений: 7
Регистрация: 26-07-09
Из: Саратов
Пользователь №: 51 565



Приветствую всех. Вопрос к знающим. Начал писать первую серьезную (для меня, т.к. зашел в тупичек) программу. Задумал сделать тахометр на "копейку". Взял за основу программу частотомера. Программа должна выводить значения частоты вращения двигателя на линейку светодиодов. Чем больше частота вращения, тем больше светодиодов светятся.
В конечном итоге программа вычисляет частоту, но светодиоды загораются непонятно как. Посмотрите, пожалуйста исходник, может опытные программисты сразу увидят что не так.
Программа написана в CodeVisionAVR и есть симуляция работы схемы в Протеусе.
Заранее оч. благодарен!
Прикрепленные файлы
Прикрепленный файл  Taxo.rar ( 4.44 килобайт ) Кол-во скачиваний: 46
 
Go to the top of the page
 
+Quote Post
akl
сообщение Jul 26 2009, 14:36
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 4-04-07
Из: Ижевск
Пользователь №: 26 773



Здравствуйте. Может пригодится вот это, правда на асме и индикация в виде точки. Переделать индикацию и заменить множитель, думаю, не сложно.
Прикрепленный файл  TAHOM74.rar ( 17.2 килобайт ) Кол-во скачиваний: 163
Go to the top of the page
 
+Quote Post
Serega_0180
сообщение Jul 31 2009, 19:03
Сообщение #3





Группа: Участник
Сообщений: 7
Регистрация: 26-07-09
Из: Саратов
Пользователь №: 51 565



спасибо. это уже находил, смотрел. Но очень плохо знаю ассемблер (еще хуже,чем СИ biggrin.gif ).
мне подсказали немного, что нужно использовать цикл if Пока думаю дальше.
Go to the top of the page
 
+Quote Post
Paulina
сообщение Aug 4 2009, 13:30
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 18-05-08
Пользователь №: 37 607



Цитата(Serega_0180 @ Jul 31 2009, 22:03) *
спасибо. это уже находил, смотрел. Но очень плохо знаю ассемблер (еще хуже,чем СИ biggrin.gif ).
мне подсказали немного, что нужно использовать цикл if Пока думаю дальше.


1)если гасить светодиоды, то все, а у вас только порт D гасится:
#define OFF_LEDS PORTD = 0b00000000
добавьте то же для других портов

2)смотрите, что у вас между 6-м и 4-м светодиодом стоит:

if (Fx >= 40)
{
ON_LED6;
}
if (Fx >= 33.3)
{
OFF_LEDS;
}
while (Fx >= 26.7)
{
ON_LED4;

я так понимаю, результат ctrl-c ctrl-v))

3) на малых частотах входного сигнала (около 10 имп/с) ошибка будет составлять до 20% (т.к. подсчет ведется примерно за 500 мс). здесь лучше использовать измерение не количества импульсов, а их периода следования (скажем, померили период следования T в микросекундах и находите частоту по формуле N0*1000000/T, где N0 - количество оборотов на импульс, у вас это 30)

Сообщение отредактировал Paulina - Aug 4 2009, 14:16
Go to the top of the page
 
+Quote Post
Serega_0180
сообщение Aug 15 2009, 18:02
Сообщение #5





Группа: Участник
Сообщений: 7
Регистрация: 26-07-09
Из: Саратов
Пользователь №: 51 565



спасибо, что прокомментировали программу. Потом и сам увидел, что где-то остались if, а где-то while
невнимательно смотрел. Щас применил везде if и перед каждым включением светодиодов добавил выключение всех (исправил тоже, чтоб были нули на всех портах).
Проверял в протеусе, работает, но почему-то не светятся светодиоды, подключенные к выходам PC1, PC2, PC3. Ставил туда щуп напряжения, показывает 1.5 В. Когда же отключаешь эти светодиоды (или включаешь вместо них обычные), тогда все ровно - нормальная единица на выходах. Надеюсь, что это может быть просто глюк программы. smile.gif Щас делаю всю схему на макетке и опробую.
По поводу точности пока очень не загоняюсь, сейчас главное, чтоб правильно работало. На всяк. случай выложу тут программу. Если кто прокомментирует, только рад буду w00t.gif
Прикрепленные файлы
Прикрепленный файл  Taxometr_mega8.rar ( 24.1 килобайт ) Кол-во скачиваний: 37
 
Go to the top of the page
 
+Quote Post

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

 


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


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