Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



gps спидометр для моторной лодки

Сообщений 1 страница 17 из 17

1

Добрый день
Хочу обратиться за помощью
собрал спидометр для лодки в железе
все зависает на старте устройства
попробовал промоделировать в протеусе, результат одинаковый
баском при компиляции ругается на ошибки
https://drive.google.com/open?id=1y2EWB … hgn2av53ul

Отредактировано Стас (2019-09-22 19:55:10)

0

2

не пойму,а можно файлы прикреплять к посту?

0

3

FUSE бит Watchdog активировали в МК?

0

4

RDW написал(а):

FUSE бит Watchdog активировали в МК?

У атмеги 16 я его не вижу
Я так и понимаю,что беда с фьюзами
Баском,при компиляции выдаёт 2 ошибки
При прошивке контроллера из баском, каким образом прописываются фьюзы
Шил из атмэл студии и мог нахомутать легко

0

5

'***FUSES***
'Boden level - 1
'Boden - 0
'Ext Crystal 101111             почему тут 6 знаков ? вроде от внешнего кварца больше 8мгц, должно стоять 1111
'OCD - 1
'JTAG - 1
'SPI - 0
'CKOPT - 1
'Erase EEPROM - 0
'Boot size - 00
'Reset vector -1

Отредактировано Стас (2019-09-23 18:50:51)

0

6

Нашёл где фьюзы в баском выставлять
Только программаторы на работе оказались
Завтра вечерком попробую
Смущает сообщение об ошибках
http://yapx.ru/v/FSVB7

Отредактировано Стас (2019-09-23 20:42:26)

0

7

Если ошибки при компиляции, то при чем тут фьюзы? Что то неправильно в коде. Какие ошибки? Прежде чем прошивать, нужно устранить эти ошибки.

0

8

насколько я понял Баском ругается на переменную Lat, типа она зарезервирована для ASM.  Попробуйте ее переименовать. И потом требует подпрограмму _eeprom. Ага, так и есть. Переименовал Lat в Latt и в коде добавил

Код:
_eeprom:
return

Скомпилировалось без ошибок.

0

9

Спасибо
Завтра попробую

0

10

Заменил lat на latt
Ошибка ушла
EEPROM
Return
Куда вставлять?
Вставил первой строкой
Компиляция прошла успешно
В протеусе не работает

0

11

Я не говорю, что это нужно куда-то вставлять. Видимо у вас в коде есть переход на подпрограмму _eeprom.  А самой подпрограммы нет. Поэтому компилятор и ругается. Я, просто для примера, вставил эту подпрограмму и ошибка ушла.

0

12

Я понял
Спасибо

0

13

Ничего не получилось
устройство зациклилось на приветствии

0

14

Код:
'основной цикл
Loop:

А это что такое? Главный цикл начинается с Do. И без двоеточия.

Код:
Do
  ' Code
Loop

0

15

все подкорректировал
ничего не поменялось

0

16

Посмотрел ваш код. Даже не знаю с чего начать. Надеюсь вы читали Datasheet на ЖПС модуль, и он у вас подключен. Вот как я вижу ваш код.
После заставки у вас нет команды очистки дисплея. То есть эта заставка будет висеть постоянно, кроме тех знакомест, куда вы что-то будете выводить позже. И заставка - это не самое важное в программе. Ее можно добавить после того, как программа отлажена.

Код:
'запускаем DS18b20
1wreset                                          ' reset the bus
1wwrite &HCC                                ' skip rom
1wwrite &H44                                ' Convert T

Call Wait_for_string( "$GPGGA,")            ' вызов подпрограмы ожидающий строку, начинающуюся с $GPGGA,

Вы запускаете измерение температуры, а потом сразу прыгаете на п\п, ожидающую определенную строку по UART'у. А как вы будете ловить эту строку? Львиная доля машинного времени уйдет на обработку прерываний таймеров. У вас прерывания таймера 0 срабатывают каждые 9 мс (не самый лучший способ опроса кнопок ), это если я правильно посчитал, но вроде правильно. А есть еще таймер 1.  И, как я понял, пока эта строка не получена, программа будет висеть. А при подаче питания ЖПС модуль надо как то инициировать, или он должен дать какую то команду, что готов к работе? Или контроллер должен дать команду на отправку данных? Ведь существует горячий старт, холодный старт. Я сейчас не помню, но при последнем, вроде, проходит несколько минут, прежде чем он "готов к работе".
Я бы писал программу по другому. Подключаете дисплей, выводите все надписи. Вместо значений можно подставить любые числа. Потом. когда все будет отображаться как надо, добавляете измерение температуры. Отлаживаете, потом вольтметр. Отладка. Тахометр. Отладка. ЖПС модуль. Отладка. А теперь добавляете заставку. Сразу всю программу написать без ошибок сложно, по крайней мере для меня. Может здесь найдете что-нибудь полезное.

0

17

Спасибо
Хотелось по быстрому
Это ведь чужой проект,и вроде как у человека работает
Буду курить матчасть и воплощать

0