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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Хм, интересно. Прогнал в симуляторе, и получилось следующее: при выполнении команды POWERDOWN в регистре MCUCR выставляется только бит SE (Sleep Enable), разрешающий спящий режим. Тут как бы все правильно. А вот биты SM1 и SM0 так и остаются в нулях. То бишь выбран режим IDLE. Потому и такое потребление.

Отсюда вопрос, в баскоме еще надо отдельно конфигурировать в какой режим будет уходить МК по команде POWERDOWN? Это не POWER MODE ли? :)
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

aleksandr-zh писал(а):намек: молчат - значит не заморачивались...
требовать ответа - не культурно...


Я и не требовал. На то форум и нужен, чтобы вопросы задавать. :)
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
kip96
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

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

Сообщение kip96 »

aleksandr-zh писал(а):скиньте мне свой код, я на 16х2 проверю...

Да код простой , для проверки. :dont_know: B симуляторе всё понятно(F8)

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

$regfile = "attiny2313.dat"
$crystal = 8000000
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
Config Lcd = 16 * 1a
$sim
Dim A As Byte
Do
 Cls
Lcd "TECT 1234567890"
Waitms 2000
For A = 1 To 10
   Shiftlcd Right
Waitms 500
Next
For A = 1 To 10
      Shiftlcd Left
Waitms 500
Next
Loop
End
Все делают ошибки, только мудрецы - новые, а дураки - старые.
user2007
Открыл глаза
Сообщения: 66
Зарегистрирован: Пт дек 10, 2010 18:29:26

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

Сообщение user2007 »

Advent писал(а):aleksandr-zh без освещения - 15 МОм
при тусклом - 12 МОм
при дневном свете - 6 МОм
Если можно то напишите программу для Attiny13 они самые дешёвые ножек думаю хватит, можно без индикаторов, без регулировки времени, в программе зафиксировать 5 часов и всё :)
Огромно СПАСИБО буду ждать программку :))


Уважаемый Advent! Получили Вы что-нибудь в ответ от адресата?Если задача для Вас актуальна - пожалуйста, помогу Вам. Только вот датчик Ваш очень плох. Токи утечки и грязь будут вызывать сбои в системе с таким датчиком.Нельзя ли применить какой-либо другой? :)
Последний раз редактировалось user2007 Пн дек 27, 2010 19:34:20, всего редактировалось 1 раз.
aleksandr-zh
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

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

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

Advent молчит, не ответил...
Аватара пользователя
kip96
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

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

Сообщение kip96 »

реально индикатор как бы состоит из 2-х строчек из 8-ми знакомест в одну линию. И там где после 8-го символа должен, по идее, переходить на вторую линию, он переходит в 9-ое (несуществующее) знакоместо. А ведь его там НЕТ!
The 16 * 1a is special. It is used for 2 * 8 displays that have the address of line 2, starting at location &H8.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
aleksandr-zh
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

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

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

сейчас как раз общаемся с Марком. Перенаправлю ваш пример ему
user2007
Открыл глаза
Сообщения: 66
Зарегистрирован: Пт дек 10, 2010 18:29:26

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

Сообщение user2007 »

kip96 писал(а):реально индикатор как бы состоит из 2-х строчек из 8-ми знакомест в одну линию. И там где после 8-го символа должен, по идее, переходить на вторую линию, он переходит в 9-ое (несуществующее) знакоместо. А ведь его там НЕТ!
The 16 * 1a is special. It is used for 2 * 8 displays that have the address of line 2, starting at location &H8.


А знали бы английский - сами задали бы вопрос разработчику языка... :)
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

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

edm2007 писал(а): В рабочем режиме один МК при тактовой 4 МГц и питании 3 В кушает около 1,3 mА, а в powerdown 0,35 mА
А если "пошаманить" командой POWER MODE
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Ну да, я выше об этом и написал. :)

edm2007 писал(а):Это не POWER MODE ли? :)


На самом деле так оно и оказалось. POWER POWERDOWN, и в результате тестер потребляемый ток вообще не видит. Одни нули. :)
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Правда выход из этого режима только по НИЗКОМУ уровню внешнего прерывания. А оно генерируется все время, пока этот самый уровень низкий. При работе программы это прерывание запрещено, разрешается непосредственно перед засыпанием. Но вот вылезла одна неудобность. Если кнопка будет удерживаться все время, то как только прерывание будет разрешено, оно тут же начнет обрабатываться. А в обработчике это прерывание запрещается, чтобы не мешать основной программе.А потом, после обработки, он сразу же уснет. С запрещенным прерыванием. :)) Разумеется, что проснуться уже не получится. Вот я и думаю, воткнуть перед разрешением прерывания ожидание отпускания кнопки, что ли...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
aleksandr-zh
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

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

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

user2007 писал(а):Господин Модератор! Мне угрожают от Вашего имени! :cry:

не стоит ТАК сильно изменять свои жиденькие сообщения до полного изменения смысла последних!
aleksandr-zh
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

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

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

kip96 писал(а):
kip96 писал(а):Похоже и со своей проблемой решил. Завтра в железе проверю

Вообщем опять я про индикатор 16*1а
Рано я радовался!
Кроме того что писать 16 символов в одной строке, больше ни чего не даёт. Да ещё и памяти жрёт по сравнению с 16*1 -аж пипец как много, я аж на ... сел :shock: :shock: :shock:
Сдвигать надпись не сдвигает корректно (т.е. до середины экрана доходит и пропадает),
Locate 1 , 9 и выше не выводит символ, нужно писать Locate 2 , 1(переходить на вторую строку). Даже в симуляторе это видно.
Короче дешевле конфигурировать под 16*1 и писать с оверлайном. Так-то. :tea: :))

не могу понять Вашей проблемы :(
что надо получить в итоге?
проверил - у меня на 16х2 работает, как и в симуляторе
Аватара пользователя
kip96
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

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

Сообщение kip96 »

У меня индикатор 16 знакомест на одной линии физически, програмно 8 знакомест на 2-х линиях. Для Баскома 16*1А
При сдвигании надписи выходит так:
Изображение
Это-же не нормально!
Вложения
пример.JPG
(39.93 КБ) 1820 скачиваний
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Аватара пользователя
kip96
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

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

Сообщение kip96 »

aleksandr-zh писал(а):проверил - у меня на 16х2 работает, как и в симуляторе

В программе-же

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

Config Lcd = 16 * 1a

Симулятор выдаёт на экран 16 *2 :dont_know: и прописывает по 8 символов в каждой линии
Все делают ошибки, только мудрецы - новые, а дураки - старые.
aleksandr-zh
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

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

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

вы не понимаете устройство индикатора, скачайте полный мануал на эту серию
а то, что кажет симулятор - так и должно быть, он же - 16х2!
ЖКИ - память
и она виртуально бесконечна для строки
а апаратно - ограничена
вы же сами написали: две строки по 8 символов = спец индикатор 16а

не пользуйтесь вы всякими симуляторами!
что кажет реальный?
Аватара пользователя
kip96
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

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

Сообщение kip96 »

То он и кажет, что я нарисовал. Все наблюдения с реального индикатора. В симулятор я уже потом лезу, для проверки.
aleksandr-zh писал(а):а то, что кажет симулятор - так и должно быть, он же - 16х2!

Тем не менее, при индикаторе 16*1 симулятор показывает именно его, и при 40*4 так-же и при 20 * 2. Чем-же 16*1а не угодил :dont_know:
aleksandr-zh писал(а):вы не понимаете устройство индикатора, скачайте полный мануал на эту серию

Что-бы провести операции с 16*2 в Баскоме, я вообще об этом индикаторе ни чего не знал.
Что такого я должен понимать, что-бы на индикатое сдвинуть строчку при помощи языка высокого уровня.
Т.Е. я конечно смогу это сделать, но это будет не так-же просто, как с другими индикаторами, а равно как через ж....у.
Я просто констатирую факт(наверное) и пока считаю что это баг. Ведь я же могу сконфигурировать как 16*1а, а полноценные операции проделовать не могу. Другое дело если-бы 16*1а в Баскоме не было. Тогда сам додумывай.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Аватара пользователя
Gordon Shumway
Мучитель микросхем
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область
Контактная информация:

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

Сообщение Gordon Shumway »

Доброго времени суток, уважаемые знатоки !
Всех с Новым годом ! :))

Подскажите, пожалуйста по Баскому !

Нужно принять цифру в двоичном коде (по типу как со счетчика 176ие2 на дешифратор на 176ид3)
то есть научить контроллер разобраться какая цифра пришла по четырем проводам и запомнить ее до некоторого действия. Выводить на индикатор не нужно. С баскомом только разбираюсь, так что извините, если вопрос "чайника" :)

Спасибо заранее за ответы !
С уважением,
Алексей.
aleksandr-zh
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

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

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

вопрос неконретный. Если я верно понял, необходимо принять 4 разряда\бита в паралельном коде

Значит:
завидите данные на порт (согласовав уровни),
в программе создаете (объявляете) переменную типа Байт (dim data_my as byte),
читаете данные порта в эту переменную (data_my = pinX), где Х = имя порта
Потом выделяете или "ручками" считываете соответствующие разряды\биты
например, вы подключили данные к младшей половине порта (Д0-Д3), остальные биты вам не нужны. Значит, используя команду сдвига можете от "ненужных" бит избавиться, сдвинув их. Т.е., сдвигаете "вправо" к старшим разрядам 4 раза. Ваши 4 бита станут в вершней половине, а младшие будут = 0
или сдвигаете влево, к младшим разрядам, если подключено в Д4-Д7
Можно просто обнулить ненужные биты, используя команды битовых операций. Для вас OR и AND подойдут

удачи
user2007
Открыл глаза
Сообщения: 66
Зарегистрирован: Пт дек 10, 2010 18:29:26

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

Сообщение user2007 »

Без вопросов.
Шапка:
...
Dim A As Byte
----------
Config Port B = Input 'порт В обозначаем как входной по 8 входам, код от 0 до 255
В программе:
A = PinB 'переменной А присваивается значение, равное двоичному коду на входе порта В
If A = 0 then....
Elseif A=1 then...
----------
Elseif A=255 then...
End if
Неиспользуемые входы порта В садим на землю, например, старшие 4 входа В.7...В.4!!!........
Если Вам нужно использовать только 4 бита на вход, а 4 - на выход, адресуйте на вход только
эти 4 входа, а затем преобразуйте их в двоичное число,например:
Шапка:
----------
Dim A As Byte
Dim B As Byte
Dim C As Byte
Dim D As Byte
Dim E As Byte
----------
Config Pin B.0 =Input
Config Pin B.1 =Input
Config Pin B.2 =Input
Config Pin B.3 =Input
----------
В программе:
A=Port b.0
B=Port b.1
C=Port b.2
D =Port b.3
B=B*2
C=C*4
D=D*8
E=A
E=E+B 'A+B
E=E+C 'A+B+C
E=E+D ' A+B+C+D - вот Ваше 4-х разрядное двоичное число, с которым можно дальше работать
If E=0 then......'см.выше
:)
Последний раз редактировалось user2007 Вт янв 11, 2011 11:48:58, всего редактировалось 4 раза.
Ответить

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