ТАВРОФОРУМ

Вернуться   ТавроФорум > Не автомобильные темы > Решение бытовых проблем > Компьютеры

Компьютеры Уголок для решения бытовых компьютерных проблем.

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.10.2013, 13:15   #1
Pilot
 
Адрес: Киев
Сообщений: 335
Длина: 5700мкм
Диаметр: 33мм
Отправить сообщение для Pilot с помощью ICQ
По умолчанию AVR

Здрасти.
Собственно, нужна помощь в создании прошивки для микроконтроллера.
В Atmel AVR написал на С++ программку вращения энкодера.
Сама программка небольшая, и вроде бы ошибок нет, но созданный hex-файл не работает ни на живом контроллере, ни в эмуляции на Proteus.

Если есть кто в состоянии помочь, то вышлю файлы, и буду безмерно благодарен.
__________________
Надейся на лучшее, расчитывай на худшее
Люблю Таврооргию. Такого пох№зма и подъ№балова нигде не встретишь! (c) Lusi
Pilot вне форума   Ответить с цитированием
Старый 08.10.2013, 14:12   #2
кук
Таки модератор
 
Адрес: Майже Одесса
Сообщений: 56,498
Машина: Темно-сіра
Длина: 238940мкм
Диаметр: 58мм
По умолчанию

Высылайте, только для это есть свой раздел- Компютеры.
__________________
Вы хотите поставить меня в тупик своими вопросами, а я вас поставлю в тупик своими ответами!
кук вне форума   Ответить с цитированием
Старый 08.10.2013, 14:15   #3
Kino
 
Kino
 
Адрес: Киев, м.Дарница
Возраст: 42
Сообщений: 3,659
Машина: Slavuta 1.3Li
Длина: 43480мкм
Диаметр: 36мм
Отправить сообщение для Kino с помощью ICQ
По умолчанию

Вы эмулируете энкодер?
Подробнее давайте.
Kino вне форума   Ответить с цитированием
Старый 08.10.2013, 15:01   #4
Pilot
 
Адрес: Киев
Сообщений: 335
Длина: 5700мкм
Диаметр: 33мм
Отправить сообщение для Pilot с помощью ICQ
По умолчанию

Куда слать?


Эмуляция энкодера - это 4 выключателя, которые нажимаются вручную (мышкой) в нужные положения.

суть затеи - вышел из строя блок управления поворотом вала.
Вал вращается в пределах 180 градусов (приблизительно).
Для отслеживания положения вала имеется 3 концевика, отслеживающих сектор, и еще один концевик, отслеживающий точное позиционирование.

Задатчик - еще 4 кнопки, которыми в зависимости от комбинации выбирается необходимое положение вала.

Программа сравнивает текущие значения задатчика и энкодера, и в зависимости от их состояния доворачиваем электромотор в том или ином направлении, или выдает информацию об ошибке.



Программа написана, ошибок по дебаггеру нет.
Но вот в протеусе и изменений на нажатие кнопок тоже нет...
__________________
Надейся на лучшее, расчитывай на худшее
Люблю Таврооргию. Такого пох№зма и подъ№балова нигде не встретишь! (c) Lusi
Pilot вне форума   Ответить с цитированием
Старый 08.10.2013, 15:08   #5
Kino
 
Kino
 
Адрес: Киев, м.Дарница
Возраст: 42
Сообщений: 3,659
Машина: Slavuta 1.3Li
Длина: 43480мкм
Диаметр: 36мм
Отправить сообщение для Kino с помощью ICQ
По умолчанию

можете и сюда файл прикрепить (наверное), или ссылку на него.
Kino вне форума   Ответить с цитированием
Старый 08.10.2013, 15:16   #6
Pilot
 
Адрес: Киев
Сообщений: 335
Длина: 5700мкм
Диаметр: 33мм
Отправить сообщение для Pilot с помощью ICQ
По умолчанию

http://www.ex.ua/878246416461

Наверняка будут вопросы. Если надо - могу перезвонить.
__________________
Надейся на лучшее, расчитывай на худшее
Люблю Таврооргию. Такого пох№зма и подъ№балова нигде не встретишь! (c) Lusi
Pilot вне форума   Ответить с цитированием
Старый 08.10.2013, 15:52   #7
Kino
 
Kino
 
Адрес: Киев, м.Дарница
Возраст: 42
Сообщений: 3,659
Машина: Slavuta 1.3Li
Длина: 43480мкм
Диаметр: 36мм
Отправить сообщение для Kino с помощью ICQ
По умолчанию

есть подозрение, что по GOTO программа уходит в ошибку и никогда не возвращается.

я бы избавился от них путем оформления всё в процедуры. ладно, еще посижу-посмотрю.
Kino вне форума   Ответить с цитированием
Старый 08.10.2013, 15:57   #8
Pilot
 
Адрес: Киев
Сообщений: 335
Длина: 5700мкм
Диаметр: 33мм
Отправить сообщение для Pilot с помощью ICQ
По умолчанию

Возможно, я не силен в программировании.
Но хотел бы набраться опыта.
__________________
Надейся на лучшее, расчитывай на худшее
Люблю Таврооргию. Такого пох№зма и подъ№балова нигде не встретишь! (c) Lusi
Pilot вне форума   Ответить с цитированием
Старый 08.10.2013, 15:59   #9
Kino
 
Kino
 
Адрес: Киев, м.Дарница
Возраст: 42
Сообщений: 3,659
Машина: Slavuta 1.3Li
Длина: 43480мкм
Диаметр: 36мм
Отправить сообщение для Kino с помощью ICQ
По умолчанию

мда. у меня этой версии студии нет. могу разве что переписать на иаре.
Kino вне форума   Ответить с цитированием
Старый 08.10.2013, 16:07   #10
Kino
 
Kino
 
Адрес: Киев, м.Дарница
Возраст: 42
Сообщений: 3,659
Машина: Slavuta 1.3Li
Длина: 43480мкм
Диаметр: 36мм
Отправить сообщение для Kino с помощью ICQ
По умолчанию

частота внутрення рц-цепочка на 1Мгц? правильно я понял?
кстати, ресет у вас на массе. должен быть к питанию. возможно у вас всё работает. перепроверьте.

Последний раз редактировалось Kino; 08.10.2013 в 16:09.
Kino вне форума   Ответить с цитированием
Старый 08.10.2013, 17:15   #11
Pilot
 
Адрес: Киев
Сообщений: 335
Длина: 5700мкм
Диаметр: 33мм
Отправить сообщение для Pilot с помощью ICQ
По умолчанию

С резетом действительно лажанулся. Спасибо.

НО, программа выдает неправильную индикацию и не реагирует ни на какие действия.
Сегодня-завтра перепроверю текст, может что-то найду.
__________________
Надейся на лучшее, расчитывай на худшее
Люблю Таврооргию. Такого пох№зма и подъ№балова нигде не встретишь! (c) Lusi
Pilot вне форума   Ответить с цитированием
Старый 08.10.2013, 17:23   #12
Kino
 
Kino
 
Адрес: Киев, м.Дарница
Возраст: 42
Сообщений: 3,659
Машина: Slavuta 1.3Li
Длина: 43480мкм
Диаметр: 36мм
Отправить сообщение для Kino с помощью ICQ
По умолчанию

кстати, диоды в протеусе поменяйте, эти не светятся, можно судить только по уровню на резисторах.
и второе, если кнопки коммутируют питание на пины, то для нормальной симуляции их мк, надо подтянуть через pull-down к массе, иначе, после отпускания кнопки, на входе мк останется лог. 1.

короче, правильно оформи схему, и возможно программа отработает правильно.
Kino вне форума   Ответить с цитированием
Старый 08.10.2013, 17:53   #13
Pilot
 
Адрес: Киев
Сообщений: 335
Длина: 5700мкм
Диаметр: 33мм
Отправить сообщение для Pilot с помощью ICQ
По умолчанию

Так вроде ж в самом начале программы указал подтяжку всех портов через резисторы на массу.

Работу программы проверяю не только в симуляции, но и на живом МК. Благо на работе есть паяльник.
__________________
Надейся на лучшее, расчитывай на худшее
Люблю Таврооргию. Такого пох№зма и подъ№балова нигде не встретишь! (c) Lusi
Pilot вне форума   Ответить с цитированием
Старый 08.10.2013, 17:58   #14
Kino
 
Kino
 
Адрес: Киев, м.Дарница
Возраст: 42
Сообщений: 3,659
Машина: Slavuta 1.3Li
Длина: 43480мкм
Диаметр: 36мм
Отправить сообщение для Kino с помощью ICQ
По умолчанию

там нет резисторов на массу, есть только на питание. на вход с нулями это третье состояние.

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

типа
for(;
{
if (PIND0==0)
PORTA = 0xFF
else
PORTA = 0x00;
}

потом дальше бум думать.
Kino вне форума   Ответить с цитированием
Старый 08.10.2013, 22:39   #15
Pilot
 
Адрес: Киев
Сообщений: 335
Длина: 5700мкм
Диаметр: 33мм
Отправить сообщение для Pilot с помощью ICQ
По умолчанию

Я вот как раз и подумал сделать что-то наподобие этого - разбить программу на составляющие, и смотреть как оно работает. Завтра и займусь.
__________________
Надейся на лучшее, расчитывай на худшее
Люблю Таврооргию. Такого пох№зма и подъ№балова нигде не встретишь! (c) Lusi
Pilot вне форума   Ответить с цитированием
Старый 09.10.2013, 09:40   #16
Pilot
 
Адрес: Киев
Сообщений: 335
Длина: 5700мкм
Диаметр: 33мм
Отправить сообщение для Pilot с помощью ICQ
По умолчанию

стою на асфальте я в лыжи обутый....

текст программы

#include <avr/io.h>

int main()
{
PORTA=0x00; //порт А
DDRA=0xFF;

PORTD=0x00;
DDRD=0x00;
for(;
{
{
if (PIND0==0)
PORTA=0xFF;
else
PORTA=0x00;
}
}
}

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

Может у меня руки кривые, а извилины - прямые?
__________________
Надейся на лучшее, расчитывай на худшее
Люблю Таврооргию. Такого пох№зма и подъ№балова нигде не встретишь! (c) Lusi
Pilot вне форума   Ответить с цитированием
Старый 09.10.2013, 10:38   #17
Kino
 
Kino
 
Адрес: Киев, м.Дарница
Возраст: 42
Сообщений: 3,659
Машина: Slavuta 1.3Li
Длина: 43480мкм
Диаметр: 36мм
Отправить сообщение для Kino с помощью ICQ
По умолчанию

а так реакция на пинд0 в реальном железе есть?

http://exfile.ru/441048
Kino вне форума   Ответить с цитированием
Старый 09.10.2013, 11:29   #18
Pilot
 
Адрес: Киев
Сообщений: 335
Длина: 5700мкм
Диаметр: 33мм
Отправить сообщение для Pilot с помощью ICQ
По умолчанию

Есть и в реальном, и в симуляции...
__________________
Надейся на лучшее, расчитывай на худшее
Люблю Таврооргию. Такого пох№зма и подъ№балова нигде не встретишь! (c) Lusi
Pilot вне форума   Ответить с цитированием
Старый 09.10.2013, 11:50   #19
Kino
 
Kino
 
Адрес: Киев, м.Дарница
Возраст: 42
Сообщений: 3,659
Машина: Slavuta 1.3Li
Длина: 43480мкм
Диаметр: 36мм
Отправить сообщение для Kino с помощью ICQ
По умолчанию

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

http://exfile.ru/441062

Последний раз редактировалось Kino; 09.10.2013 в 11:57.
Kino вне форума   Ответить с цитированием
Старый 09.10.2013, 11:56   #20
Pilot
 
Адрес: Киев
Сообщений: 335
Длина: 5700мкм
Диаметр: 33мм
Отправить сообщение для Pilot с помощью ICQ
По умолчанию

то есть компиляция неправильно идет?
__________________
Надейся на лучшее, расчитывай на худшее
Люблю Таврооргию. Такого пох№зма и подъ№балова нигде не встретишь! (c) Lusi
Pilot вне форума   Ответить с цитированием
Старый 09.10.2013, 12:12   #21
Kino
 
Kino
 
Адрес: Киев, м.Дарница
Возраст: 42
Сообщений: 3,659
Машина: Slavuta 1.3Li
Длина: 43480мкм
Диаметр: 36мм
Отправить сообщение для Kino с помощью ICQ
По умолчанию

походу да.
Kino вне форума   Ответить с цитированием
Старый 09.10.2013, 12:58   #22
Pilot
 
Адрес: Киев
Сообщений: 335
Длина: 5700мкм
Диаметр: 33мм
Отправить сообщение для Pilot с помощью ICQ
По умолчанию

Цитата:
Сообщение от Kino Посмотреть сообщение
тогда я хз. что-то не правильно настроено в студии.
скомпилил у себя без изменений.
пробуй.

http://exfile.ru/441062

если это моя программа - то не фурычит.
после временной задержки выдает не запрограммированную индикацию (portA == 0b00110110),при том даже не отрабатывая положенные шаги.
Моя компиляция работала так-же (после подвешивания резет на +)

А предыдущий файл - это компиляция какого кода?
__________________
Надейся на лучшее, расчитывай на худшее
Люблю Таврооргию. Такого пох№зма и подъ№балова нигде не встретишь! (c) Lusi
Pilot вне форума   Ответить с цитированием
Старый 09.10.2013, 13:16   #23
Kino
 
Kino
 
Адрес: Киев, м.Дарница
Возраст: 42
Сообщений: 3,659
Машина: Slavuta 1.3Li
Длина: 43480мкм
Диаметр: 36мм
Отправить сообщение для Kino с помощью ICQ
По умолчанию

а, ну если так-же, то по идее файл собирает правильно.

предыдущая просто цикл.
if (PIND0==0)
PORTA=0xFF;
else
PORTA=0x00;
Kino вне форума   Ответить с цитированием
Старый 09.10.2013, 13:32   #24
Pilot
 
Адрес: Киев
Сообщений: 335
Длина: 5700мкм
Диаметр: 33мм
Отправить сообщение для Pilot с помощью ICQ
По умолчанию

А ты открывал мой проект? Или создавал свой и писал туда мою программу?

Вопрос в том, что компиляция цикла у меня раза в полтора меньше, чем у тебя.
А компиляция программы по размеру такая-же. Может (если открывал мой проект) не перезаписался hex-файл?
__________________
Надейся на лучшее, расчитывай на худшее
Люблю Таврооргию. Такого пох№зма и подъ№балова нигде не встретишь! (c) Lusi
Pilot вне форума   Ответить с цитированием
Старый 09.10.2013, 13:36   #25
Kino
 
Kino
 
Адрес: Киев, м.Дарница
Возраст: 42
Сообщений: 3,659
Машина: Slavuta 1.3Li
Длина: 43480мкм
Диаметр: 36мм
Отправить сообщение для Kino с помощью ICQ
По умолчанию

почему?

вот мой.
:100000000C945800189518951895189518951895EA
:100010001895189518951895189518951895189578
:100020001895189518951895189518951895189568
:100030001895189518951895189518951895189558
:100040001895189518951895189518951895189548
:100050001895189500E00BBB0FEF0ABB00E008BB3A
:1000600000E007BB00E005BB07E004BB00E002BB0B
:1000700000E001BB0FEF0BBB0FE71AE126E00150D8
:1000800010402040E1F700C0000000E00BBB00E2A0
:100090000BBBAA98A89AA998A898A998DA9ADC9A6A
:1000A000DD9AD898D99AAA98F7CF00008895FECF04
:1000B0000FE90DBF00E00EBFC0E8D0E00E9466006F
:1000C0000E942A000E9455000C94550001E00895FA
:00000001FF
:00000001FF


а вот твой.
:100000000C942A000C9434000C9434000C943400AA
:100010000C9434000C9434000C9434000C94340090
:100020000C9434000C9434000C9434000C94340080
:100030000C9434000C9434000C9434000C94340070
:100040000C9434000C9434000C9434000C94340060
:100050000C94340011241FBECFE5D4E0DEBFCDBF29
:100060000E9436000C9450000C9400001BBA8FEFD5
:100070008ABB18BA17BA15BA97E094BB12BA11BA6C
:100080008BBB1BBA80E28BBBAA98A89AA998A898A8
:10009000A998DA9ADC9ADD9AD898D99AAA98F7CFD3
:0400A000F894FFCF02
:00000001FF


опкоды разные, но размер подходит.
Kino вне форума   Ответить с цитированием
Ответ


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

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

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


Текущее время: 19:55. Часовой пояс GMT +3.


Перевод: zCarot Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.