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

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

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

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



Зависание

Сообщений 31 страница 60 из 159

31

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

А зачем Вам в метеостанции компас?

А чтоб был. Эти вопросы не совсем относятся к сути дела, по которой я завёл эту тему.

0

32

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

А чтоб был. Эти вопросы не совсем относятся к сути дела, по которой я завёл эту тему.

Да-да, конечно, прошу прощения.

0

33

А по сути, скорее всего у Вас пересекаются переменные, имеется ввиду что, начало следующей переменной, накладывается на конец предыдущей. Особенно это проявляется, при использовании строковых переменных, обозначили String * 5, а на самом деле получается значение из 6 символов. В итоге последний байт залез в следующую переменную, и естественно её испортил.

Ещё момент, у Вас массово используются подпрограммы с аргументами, это требует особого подхода, т.к., используется СТЕК.

В общем, нужен тотальный контроль за размерностью переменных.

Отредактировано sasha_1973 (2015-09-14 14:34:39)

0

34

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

А по сути, скорее всего у Вас пересекаются переменные, имеется ввиду что, начало следующей переменной, накладывается на конец предыдущей. Особенно это проявляется, при использовании строковых переменных, обозначили String * 5, а на самом деле получается значение из 6 символов. В итоге последний байт залез в следующую переменную, и естественно её испортил.

Ещё момент, у Вас массово используются подпрограммы с аргументами, это требует особого подхода, т.к., используется СТЕК.

В общем, нужен тотальный контроль за размерностью переменных.

Отредактировано sasha_1973 (Сегодня 14:34:39)

Вот за это- благодарствую. Буду смотреть.

0

35

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

Ничего не изменится - команды те же, будет работать и с этим кодом. Единственное отличие, что он 128х64, нужно будет чуток подправить положение по горизонтали.
При желании можно убрать заводскую плату и подпаяться к своей. Вот схема:

А Ваша библиотека под него имеется?
P.S. Нашёл. Извиняйте.

Отредактировано Tankor (2015-09-14 16:03:03)

0

36

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

А Ваша библиотека под него имеется?

--"Дядечка, дайте воды напиться, так спать хочется, что и переночевать негде".

--"Как мёд, так и ложкой!"

0

37

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

Ничего не изменится - команды те же, будет работать и с этим кодом. Единственное отличие, что он 128х64, нужно будет чуток подправить положение по горизонтали.
При желании можно убрать заводскую плату и подпаяться к своей. Вот схема:

Рекомендация принята. Буду реализовывать.

0

38

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

Через пару дней допишу обновление библиотеки SSD1306, будет регулировка контраста, разворот, портретный режим и графика.

Отлично, ждёмс.

0

39

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

Через пару дней допишу обновление библиотеки SSD1306, будет регулировка контраста, разворот, портретный режим и графика.

Опробовал данный дисплей. Всё супер. Небольшие доработки необходимы, но это не критично. Но я дурень купил "типа" двухцветные, а надо было монохром. Пока для экспериментов сойдёт, закажу другие, правда ценники на али стали совсем не гуманные.

0

40

Проблему первого поста решил. Всё работает и не виснет. Вторая проблема постигла, когда начал реализовывать режим powersave. Видимо, для новичков это вечная проблема. Суть такая. Устройство засыпает и работает нормально (отслеживал в терминале по маячкам), но после просыпания работает 5 сек. и виснет. Видимо что-то не предусмотрел, понять не могу. Просыпание проводит подпрограмма:
Wake:
   Disable Interrupts
   Config Timer2 = Timer , Async = On , Prescale = 64
   Prescale_timer2 = 30
   Coun1 = Prescale_timer2
   Count_sleep = Sleep_scr
   If Sound_str = "вкл" Then Soundon = 1
   Set Porta.2                                              ' Включаем дисплей
   !NOP
   !NOP
   !NOP
   !NOP
   Config Graphlcd = Custom , Cols = 128 , Rows = 64 , Lcdname = "SSD1306"
   Initlcd                                                 
   Cls
   Setfont Font6x8
   Set Porta.3                                              'включаем перефирию
   !nop
   !nop
   !nop
   !nop
   Set Sleep_flag
   Coun = 4                                                 
   A = 1                                                    'Переход к главному экрану
  ' Print "wake main"
   Enable Interrupts
Return
Что тут не так, не понимаю.
Весь проект прилагаю. Теперь, думаю, понять будет легче, т.к. реализовал замечания. https://cloud.mail.ru/public/Lves/U9bD2oEfm

Отредактировано Tankor (2015-09-19 18:50:52)

0

41

Это подпрограмма прерываний от Timer2? Тогда зачем в ней запрещать и разрешать прерывания?

0

42

Пётр написал(а):

Это подпрограмма прерываний от Timer2? Тогда зачем в ней запрещать и разрешать прерывания?

Нет, это подпрограмма вывода из сна.

0

43

Так, вопрос вроде решился. Пока работает. Время покажет. Хотел спросить про основные моменты (теоретические), которые необходимо соблюдать при уходе в сон и выходе.

0

44

Немного фото того, что пока есть. Сон работает. Просыпаемся от будильника и комбинации клавиш. На сдвиг компаса внимание не обращаем, координаты пока не переделал. Фото не все, ещё есть подменю. Осталось реализовать калибровку компаса, но это пока проблема т.к. реализации на басике не видел. Попробую портировать с С.
http://s7.uploads.ru/t/6X7eC.jpg
http://s7.uploads.ru/t/deJhf.jpg
http://s7.uploads.ru/t/Sf4HD.jpg
http://s2.uploads.ru/t/JLKU1.jpg
http://s7.uploads.ru/t/bEqJe.jpg
http://s2.uploads.ru/t/vgOBh.jpg

Благодарю всех, кто откликнулся, особенно Mrshilov за его модернизированную библиотеку экрана и sasha_1973 за дельные советы по асму. В меге32 это всё занимает 75 процентов (это ещё не предел). На 328 переходить отказался. Реализовывать буду на меге32l в TQFP корпусе. Работы ещё много, но горизонт не за горами.
P.S. Ой, забыл приложить исходник https://cloud.mail.ru/public/KG4a/UCiqTm6Zg

Отредактировано Tankor (2015-09-20 14:46:26)

+2

45

Красота какая на экране, молодец Tankor.

0

46

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

Красота какая на экране, молодец Tankor.

Возможно, главный экран "немного" перегружен, подумываю изменить дизайн главного экрана с большим шрифтом для времени.

0

47

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

Сделал вариант библиотеки дисплея с графикой - точки, линии, круги, квадраты. Но пока только в параллельном режиме - в последовательном чтение не поддерживается.
Посмотрите, хватит ли свободных ног (CS можно на землю подключить, а RESET на плюс через RC цепочку):

Можно сделать и в I2C или SPI, но тогда только через RAM-буфер 1024 байта.

Занимаюсь. Быстро не отвечу, надо опробовать.
P.S. А сама библиотека где?

Отредактировано Tankor (2015-09-20 16:54:04)

0

48

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

Вот, накропал библиотеку с графикой для SSD1306

Возможности библиотеки в моём случае идеальны.
Возможно ли победить моргание экрана? Или это предел быстродействия?

Отредактировано Tankor (2015-12-10 23:07:23)

0

49

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

По I2C обновлять экран, конечно, медленно. Идеальный вариант с параллельным интерфейсом, он и память под буфер не расходует.

Благодарю. Буду взвешивать все за и против.

0

50

Что-то ночью колёса, видимо, не едут. Не понимаю, почему так:
Dim Tt As Integer
Dim Tt_low As Byte At Tt Overlay
Dim Tt_high As Byte At Tt Overlay + 1
Tt_low = 107
Tt_high = 109
Print tt
В терминале выдаёт 109. Почему не склеивает в длинное число ??????

Отредактировано Tankor (2015-12-12 00:51:02)

0

51

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

В терминале выдаёт 109. Почему не склеивает в длинное число ??????

Dim Tt As Integer
Dim Tt_low As Byte At Tt Overlay
Dim Tt_high As Byte At Tt + 1 Overlay

0

52

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

Dim Tt As Integer
Dim Tt_low As Byte At Tt Overlay
Dim Tt_high As Byte At Tt + 1 Overlay

Вот же я баран.... Благодарю.

0

53

Mrshilov
Благодарю. Для экспериментов на будущее присмотрюсь, но на SSD1306 Вы выполнили графику, которая для меня сейчас очень важна. Мной всё переписано с нуля. ATMega32L+BME280+DS3231.
Фото:
http://s2.uploads.ru/t/5lSNV.jpg
http://s2.uploads.ru/t/plDNy.jpg
http://s6.uploads.ru/t/0yFeT.jpg
http://s2.uploads.ru/t/ZjiLp.jpg
http://s6.uploads.ru/t/DQ5Ix.jpg
http://s3.uploads.ru/t/RmuDo.jpg
http://s6.uploads.ru/t/DSi3G.jpg

Отредактировано Tankor (2016-01-06 10:23:52)

0

54

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

Еще один "набор деталей" от китайцев

А ссылочку можно?

0

55

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

А ссылочку можно?

Я Ссылка тут заказывал.

0

56

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

Я Ссылка тут заказывал.


Что-то не переходит?

0

57

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

Что-то не переходит?

У меня работает.
http://s7.uploads.ru/t/faSKC.jpg

Отредактировано Tankor (2016-01-20 09:02:02)

0

58

Точно, стало открываться.

Кто-то может сфоткать с линейкой, оценить реальные размеры?

0

59

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

Кто-то может сфоткать с линейкой, оценить реальные размеры?

Там, в описании же сказано. 42*28*13 мм

0

60

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

Там, в описании же сказано. 42*28*13 мм

Спасибо, недоглядел.

0