BASCOM AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Ответить
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

Сообщение aleksandr-zh »

serg_svd
а этот порт в этом МК не в аналоговом режиме?
выдайте ноль на эту ногу и измеряйте напряжение, должно быть 0.2 - 0 вольт
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 307
Зарегистрирован: Ср мар 31, 2010 11:45:58
Откуда: Славянск

Сообщение Moto_v3x »

когда установите porta.6 в ноль попробуйте INITLCD
Реклама
Грызет канифоль
Аватара пользователя
Сообщения: 262
Зарегистрирован: Пт окт 30, 2009 22:33:56
Откуда: Санкт-Петербург

Сообщение Alex_Megavolt_79 »

Кстати когда я пере подключил LCD с порта В на те пины что указывал serg_svd, LCD перестал работать и так же необходимо сажать rw на корпус. А после совета Moto_v3x, всё заработало.

Код: Выделить всё

 $regfile = "m16def.dat"
$crystal = 8000000

Config Porta.6 = Output
Reset Porta.6                                               ' R/W

'   ЖК       Board
' ------------------------
'  1 Vss
'  2 Vdd
'  3 V0
'  4 RS        PA5
'  5 R/W       PA6
'  6 E         PA7
'  7 DB0       PD0
'  8 DB1       PD1
'  9 DB2       PD2
' 10 DB3       PD3
' 11 DB4       PD4
' 12 DB5       PD5
' 13 DB6       PD6
' 14 DB7       PD7

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Porta.7 , Rs = Porta.5
Config Lcd = 16 * 2
INITLCD
Cls
Lcd "Hello World!"

Do

Loop

End
serg_svd вот рабочий код
Собутыльник Кота
Аватара пользователя
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Сообщение serg_svd »

Moto_v3x писал(а):когда установите porta.6 в ноль попробуйте INITLCD
Да, помогло. Спасибо!
Видел ссылку на эту команду вчера, но не ппопробовал, так как в баскоме написано, что инициализация LCD происходит при любой команде обращения к LCD. Но как показал мой опыт с данной платой, только одна команда, кроме initlcd, это сделала коорректно
PS. А библиотека lcd4busy.lbx у мня так и не заработала. Насколько понял она тоже подразумевает подключение ЖК на один порт, а не так как у меня, данные на одном порту, управление на другом
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Реклама
Эиком - электронные компоненты и радиодетали
Собутыльник Кота
Аватара пользователя
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Сообщение serg_svd »

По поводу вывода руссих букв на ЖК индикатор.
Кроме программы LCD20.exe есть еще какие-нибудь средства?

Кроме этого возник вопрос по JTAG. Кто пробовал JTAG с баскомом?
фуз JTAG я запрограмировал, подключил сам JTAG адаптер, который взял с сайта easyelectronics.ru. Запускаю отладку в авр студии. После запуска жму F11, чтобы программа пошагово исполнялась. Но указатель исполнения по строчкам не двигается, хотя и видно, что состояние регистров меняется. В чем может быть дело? Поясните!
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Реклама
Электрический кот
Аватара пользователя
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

Сообщение Igor_67 »

Во-первых: по поводу библиотек - у меня все прекрасно работает без них и с любого порта!!! :idea:
Во-вторых: русские буквы всегда генерирую сам при помощи встроенного в Баском генератора LCD. Проблем никогда не возникало: ни с определением МК индикатора, ни с отображением русского шрифта. ни с количеством занятой памяти (что немаловажно). 8)
Цапу крутить надо!!! Ку или не ку?
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Сообщение serg_svd »

Ну с работой индикатора я разобрался. Сейчас все тоже отлично работает. Нюанс оказался только в команде initlcd, которую было необходимо подавать после аппаратной подачи на вывод R/W индикатора лог. 0. Иначе индикатор не инициализировался. Если же в конструкции линия R/W будет принудительно посажена на массу, то думаю данная команда и не понадобится.
По поводу русификации. Программа LCD20.exe всего лишь берет текст написаный по-русски, заменяет в нем буквы совпадающие по написанию с английскими, а не совпадающие берет из дополнительной части знакогенератора.
По поводу кодирования своих символов, то это имеет смысл, если индикатор не поддерживает русскую кодировку, или же нужны спец символы.
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Электрический кот
Аватара пользователя
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

Сообщение Igor_67 »

serg_svd писал(а): По поводу кодирования своих символов, то это имеет смысл, если индикатор не поддерживает русскую кодировку, или же нужны спец символы.
А, в основном, так всегда и бывает (за очень редкими исключениями)! :)
Цапу крутить надо!!! Ку или не ку?
Встал на лапы
Сообщения: 84
Зарегистрирован: Пт апр 16, 2010 12:30:03

Сообщение dhouse »

Подскажите, как вывести число типа Single на LCD дисплей, оставив только 2 знака после запятой. Пробовал умножить на 100, выделить целую часть и снова поделить на 100. Дебагер показывает число, к примеру, 4.20, а на дисплей выводится 4.19999999999999.
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

Попробуй отделить целую часть от дробной. примерно так:

Код: Выделить всё

Fusing(lcd_out , "#.##")
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 184
Зарегистрирован: Чт янв 13, 2011 11:36:16
Откуда: Красноярский край

Сообщение Magicanin »

Подскажите, как вывести число типа Single на LCD дисплей, оставив только 2 знака после запятой. Пробовал умножить на 100, выделить целую часть и снова поделить на 100. Дебагер показывает число, к примеру, 4.20, а на дисплей выводится 4.19999999999999.
Читай 78 страницу в этой теме...
[size=85][color=#80BF00][b]Извращение это[/b][/color]: программатор - [color=#40BFBF]AVR910 by Prottoss[/color], прошивка - [color=#40BFBF]Doper[/color], драйвер - [color=#40BFBF]Osamu Tamura[/color], называется - [color=#FF0000]STK500[/color]![/size]
Встал на лапы
Сообщения: 84
Зарегистрирован: Пт апр 16, 2010 12:30:03

Сообщение dhouse »

Спасибо, получилось!!!
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 184
Зарегистрирован: Чт янв 13, 2011 11:36:16
Откуда: Красноярский край

Сообщение Magicanin »

Что получилось из двух вариантов?
[size=85][color=#80BF00][b]Извращение это[/b][/color]: программатор - [color=#40BFBF]AVR910 by Prottoss[/color], прошивка - [color=#40BFBF]Doper[/color], драйвер - [color=#40BFBF]Osamu Tamura[/color], называется - [color=#FF0000]STK500[/color]![/size]
Открыл глаза
Сообщения: 54
Зарегистрирован: Сб дек 06, 2008 13:48:59

Сообщение AVRDaemon »

Здравствуйте коты :)
Кто нибудь помогите с алгоритмом автомобильного тахометра, вывод на ЖКИ 2*16 :?
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 184
Зарегистрирован: Чт янв 13, 2011 11:36:16
Откуда: Красноярский край

Сообщение Magicanin »

AVRDaemon, начало то у вас есть? Или вам уже готовую прошивку выложить?
Сколько своего времени потратили на проект?
[size=85][color=#80BF00][b]Извращение это[/b][/color]: программатор - [color=#40BFBF]AVR910 by Prottoss[/color], прошивка - [color=#40BFBF]Doper[/color], драйвер - [color=#40BFBF]Osamu Tamura[/color], называется - [color=#FF0000]STK500[/color]![/size]
Открыл глаза
Сообщения: 54
Зарегистрирован: Сб дек 06, 2008 13:48:59

Сообщение AVRDaemon »

писать подобие бортового компьютера, я начал 2 дня назад.
разрабатываю подобие бортового компьютера для авто, с карбюраторным двигателем, из возможностей есть пока: вольтметр. планируется: тахометр(брать с коммутатора сигнал?) и датчик уровня топлива в баке.

остановился на тахометре, моя проблема что плохо знаю прерывания и таймеры, поэтому и прошу у вас помощи с написанием подпрограммы тахометра.
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 184
Зарегистрирован: Чт янв 13, 2011 11:36:16
Откуда: Красноярский край

Сообщение Magicanin »

Значит надо разбираться с прерываниями:
http://decada.org.ru/project/lessons/bascom_avr/10/
Изучай, потом изложишь выводы.
[size=85][color=#80BF00][b]Извращение это[/b][/color]: программатор - [color=#40BFBF]AVR910 by Prottoss[/color], прошивка - [color=#40BFBF]Doper[/color], драйвер - [color=#40BFBF]Osamu Tamura[/color], называется - [color=#FF0000]STK500[/color]![/size]
Открыл глаза
Сообщения: 54
Зарегистрирован: Сб дек 06, 2008 13:48:59

Сообщение AVRDaemon »

понял почти:
надо замерить время между двумя импульсами, и с помощью опр формулы их конвертировать в обороты... :)
формулу не подскажете?
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 184
Зарегистрирован: Чт янв 13, 2011 11:36:16
Откуда: Красноярский край

Сообщение Magicanin »

Ну если вам нужно знать количество оборотов в минуту, логичнее будет считать количество импульсов, например в секунду а далее умножить на 60. Согласны?
[size=85][color=#80BF00][b]Извращение это[/b][/color]: программатор - [color=#40BFBF]AVR910 by Prottoss[/color], прошивка - [color=#40BFBF]Doper[/color], драйвер - [color=#40BFBF]Osamu Tamura[/color], называется - [color=#FF0000]STK500[/color]![/size]
Открыл глаза
Сообщения: 54
Зарегистрирован: Сб дек 06, 2008 13:48:59

Сообщение AVRDaemon »

будет погрешность большая, но как вариант может подойти, самое главное чтобы не грешило на 100 об/мин..
Ответить

Вернуться в «AVR»