Обсуждаем контроллеры компании Atmel.
Пн янв 07, 2019 19:20:20
Уважаемые коты! Помогите котёнку
Начал осваивать Баском, и вот после пары простеньких устройств столкнулся с проблемой.
Не получается работа с ЖКИ дисплеем (TM164AD P-6 4 строки по 16 символов).
программа:
Спойлер
$regfile = "attiny2313.dat"
$crystal = 4000000
Dim Count As Byte
Dim Cur_vel As Integer
Dim Str_vel As String * 3
Dim Vel(6) As String * 3
Count = 0
Cur_vel = 1
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.0 , Rs = Portd.6
Config Lcd = 16 * 4
Wait 1
Cls
For Count = 1 To 6
Str_vel = Str(cur_vel)
Vel(count) = Format(str_vel , "000")
Cur_vel = Cur_vel + 50
Next Count
Do
Upperline
Lcd "1. " ; Vel(1) ; " 2. " ; Vel(2);
Lowerline
Lcd "3. " ; Vel(3) ; " 4. " ; Vel(4);
Thirdline
Lcd "5. " ; Vel(5) ; " 6. " ; Vel(6);
Fourthline
Lcd "1234567890123456"
Loop
Endсхема - стандартная, пины дисплея расписаны в программе. В симуляторе работает просто отлично, на реальном устройстве - хрень какая-то... 1 и 3 строка дисплея пустые, 2 и 4 - черные квадраты.
Вариантов два - или я туплю, или дисплей неисправный. И сразу дополнительный вопрос - как можно такой дисплей быстренько проверить на исправность?
Пн янв 07, 2019 20:30:42
R/W на землю не забудьте, и контрастность крутить.
Пн янв 07, 2019 20:36:26
R/W на землю не забудьте, и контрастность крутить.
R/W на землю повесил, контраст крутил. Черные закоместа гаснут при изменении контраста и всё, больше ничего не происходит.
А вот D0-D3 я на землю не вешал. Это критично?
Пн янв 07, 2019 20:49:46
Вадимчик75 писал(а):А вот D0-D3 я на землю не вешал. Это критично?
Да нет. Хотя могут помехи ловить.
В баскоме есть команда INITLCD. Вроде она автоматически вызывается при обращении к дисплею, но может все же лучше поставить её перед началом. До цикла Do-Loop. Ну и проверить подключение ног. Не раз путал ноги подключения и прописанные в программе.
А дисплей б/у?
Пн янв 07, 2019 21:08:37
initlcd ставил сразу после "Config Lcd = 16 * 4" - нет результата.
Ноги проверял и пересоединял - не помогает (((((((
Дисплей б/у, их у меня три штуки, все три ведут себя одинаково (((((
Нашел вот такую статейку - завтра еще по ней попробую:
http://cxem.net/izmer/izmer152.php
Вт янв 08, 2019 07:43:43
Уважаемые коты! Помогите котёнку
Начал осваивать Баском, и вот после пары простеньких устройств столкнулся с проблемой.
Не получается работа с ЖКИ дисплеем (TM164AD P-6 4 строки по 16 символов).
программа:
Спойлер
$regfile = "attiny2313.dat"
$crystal = 4000000
Dim Count As Byte
Dim Cur_vel As Integer
Dim Str_vel As String * 3
Dim Vel(6) As String * 3
Count = 0
Cur_vel = 1
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.0 , Rs = Portd.6
Config Lcd = 16 * 4
Wait 1
Cls
For Count = 1 To 6
Str_vel = Str(cur_vel)
Vel(count) = Format(str_vel , "000")
Cur_vel = Cur_vel + 50
Next Count
Do
Upperline
Lcd "1. " ; Vel(1) ; " 2. " ; Vel(2);
Lowerline
Lcd "3. " ; Vel(3) ; " 4. " ; Vel(4);
Thirdline
Lcd "5. " ; Vel(5) ; " 6. " ; Vel(6);
Fourthline
Lcd "1234567890123456"
Loop
Endсхема - стандартная, пины дисплея расписаны в программе. В симуляторе работает просто отлично, на реальном устройстве - хрень какая-то... 1 и 3 строка дисплея пустые, 2 и 4 - черные квадраты.
Вариантов два - или я туплю, или дисплей неисправный. И сразу дополнительный вопрос - как можно такой дисплей быстренько проверить на исправность?
Попробуйте вместо Format использовать Fusing c соответствующей маской.
https://avrhelp.mcselec.com/index.html?fusing.htmДа , и для начала просто выведите какое-нибудь число на экран.Или надпись на латинице .Можно вообще без Do.... Loop.
Если выводится- отлаживаем дальше..
Если индикатор с подсветкой- должны быть подключены: - Катод на общий,анод через резистор 470Ом на плюс и переменным резистором выставляется контраст
Вт янв 08, 2019 12:48:33
для начала было б неплохо узнать на каком контроллере дисплей, инициализация для HD44780 в баскоме не подходит для KS0066
Вт янв 08, 2019 13:29:32
Доброго дня всем!
И сразу приношу свои извинения всем кого потревожил своей проблемой!
Решение проблемы оказалось очень простым, схему собирал на макетнице проводами с наконечниками от доблестных "китайских друзей" с алиэкспресса . И что выяснилось... Два провода которые пришлись на "Е" и "D5" были с обрывом внутри.
Вот и вся проблема....
После замены - фсё заработало.
Большое спасибо всем помогавшим!!!
PS. Пойду ловить своего кота и буду уговаривать его попозировать для аватарки
Пт янв 18, 2019 23:25:22
BASCOM 2.8.1 и Windows 10 x64 версии 1809 - несовместимая комбинация. ??
До обновления работал . Вот сегодня обновил "винду" и:
я один такой везунчик?
Сб янв 19, 2019 15:02:46
Ну так откатить обновления. Потом выяснить, которое из пакета вводит в ступор баском и его не ставить.
Сб янв 19, 2019 16:09:02
А смысл откатывать ? Все равно обновлять наде..
Нашел на форуме разработчика BASCOM упоминание о такой же проблеме. Не критично, в следующем выпуске исправят.
Вс янв 20, 2019 06:48:18
nikin_n писал(а):Все равно обновлять наде..
А зачем? Сижу на семерке, года 4 назад поставил очередное обновление. Полезли глюки. Откатил, отключил обновления и прекрасно себя чувствую. Ставлю все, что нужно, все работает без проблем. Сношу, что не нужно. А последние художества микрософта по принципу "удаляем старые ошибки, добавляем новые" мне как то ни к чему.
Вс янв 20, 2019 14:52:50
А последние художества микрософта по принципу "удаляем старые ошибки, добавляем новые" мне как то ни к чему.
В Windows 10 я вообще не могу заблокировать обновления, и утилиты специальные ставил, все равно лезет в интернет и обновляет. На ноутбуке винт 64 гб, места для обновлений нет и все равно пытается что-то поставить. Наверное надо откатываться на Windows 7 или 8
Вс янв 20, 2019 17:48:28
Когда я поставил себе десятку, то сразу заметил тормоза инета. Быстро выяснил, что исходящий трафик почти в 10 раз превышает входящий. Через полчаса стояла обратно семерка. Шпиёнов нам не надо.
Вс янв 20, 2019 18:18:38
очень актуально
Вс янв 20, 2019 18:22:09
Ну ХР все же крайность. Да и дочь в возрасте 7 лет расшифровала как Хреновая Программа.
Пт янв 25, 2019 17:34:11
Вопрос по переходам call
Допустим в программе используется библиотека,и там полно CALL и возврат из библиотеки,сам вопрос-затрачивает ли атмега такты на эти переходы и возвраты?
например инициализация ILI9341
Lcd_reset = 0
Waitms 150
Lcd_reset = 1
Waitms 150
Call Lcd_write_command(&H01) '&H01 SWRESET
waitms 120
'Power Control 1
Call Lcd_write_command(&HC0)
Call Lcd_write_data(&h25)
'Power Control 2
Call Lcd_write_command(&HC1) 'step up
Call Lcd_write_data(&h11)
'VCOM Control 1
Call Lcd_write_command(&HC5) ' VCOMH - VCOML = 5.2V
Call Lcd_write_data(&h2B) 'VCOMH = 3.825
Call Lcd_write_data(&h2B) 'VCOML = -1.375
'VCOM Control 2
Call Lcd_write_command(&HC7) ' Vcom offset
Call Lcd_write_data(&h86) 'VML=58 VMH=58
'Memory Access Control
'TFT_SetOrientation(orient) ************
Call Lcd_write_command(&H36)
Call Lcd_write_data(&hE8)
'COLMOD: Pixel Format Set
Call Lcd_write_command(&H3A) '
Call Lcd_write_data(&h05)
'Frame Rate Control
Call Lcd_write_command(&HB1)
Call Lcd_write_data(&h00)
Call Lcd_write_data(&h18) 'Frame Rate 79Hz
'Display Function Control
Call Lcd_write_command(&HB6)
Call Lcd_write_data(&h0A)
Call Lcd_write_data(&h82) '
Call Lcd_write_data(&h27)
' Sleep Out
Call Lcd_write_command(&H11)
waitms 120
'Display On
Call Lcd_write_command(&H29)
Sub Lcd_write_command(byval Command As Byte)
Lcd_dc = 0
Spiout Command , 1
End Sub
Sub Lcd_write_data(byval Da_ta As Byte)
Lcd_dc = 1
Spiout Da_ta , 1
End Sub
Пт янв 25, 2019 18:13:26
Novice user писал(а):затрачивает ли атмега такты на эти переходы и возвраты?
А как иначе можно узнать адрес следующей команды, кроме как считать из памяти или рассчитать?
Пт янв 25, 2019 18:46:14
Спасибо,я тоже так думал но долго сомневался,пытаюсь ускорить графику на ILI9341 по SPI,в принципе получается если использовать ассемблерные вставки
Вс фев 17, 2019 18:43:18
Здравствуйте
Никогда не работал с СОМ портом ,решил вот попробовать.
Написал простенькую программку
- Код:
$regfile = "attiny2313.dat"
$crystal = 4000000
$hwstack = 40
$swstack = 16
$framesize = 32
$baud = 9600
'на адаптере; синий- общий
' ; зеленый-Rxd общий
' ; оранжевый- Txd
Do
Print "Hello"
wait 2
Loop
End
В симуляторе все прекрасно работает, в терминалке слово Hello видно превосходно.
Подключил вот такой девайс с али.
Настроил порт. Прошил контроллер.Но в терминале при приеме какие-то кракозябры вместо английского Hello.
Вопрос - такой преобразователь UART может работать корректно?
Спасибо)
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.