Отсюда вопрос, в баскоме еще надо отдельно конфигурировать в какой режим будет уходить МК по команде POWERDOWN? Это не POWER MODE ли?
BASCOM AVR в вопросах и ответах
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Хм, интересно. Прогнал в симуляторе, и получилось следующее: при выполнении команды POWERDOWN в регистре MCUCR выставляется только бит SE (Sleep Enable), разрешающий спящий режим. Тут как бы все правильно. А вот биты SM1 и SM0 так и остаются в нулях. То бишь выбран режим IDLE. Потому и такое потребление.
Отсюда вопрос, в баскоме еще надо отдельно конфигурировать в какой режим будет уходить МК по команде POWERDOWN? Это не POWER MODE ли?
Отсюда вопрос, в баскоме еще надо отдельно конфигурировать в какой режим будет уходить МК по команде POWERDOWN? Это не POWER MODE ли?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
aleksandr-zh писал(а):намек: молчат - значит не заморачивались...
требовать ответа - не культурно...
Я и не требовал. На то форум и нужен, чтобы вопросы задавать.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- kip96
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Ср авг 26, 2009 08:24:50
- Откуда: 1300км от Пупа
Re: BASCOM AVR в вопросах и ответах
aleksandr-zh писал(а):скиньте мне свой код, я на 16х2 проверю...
Да код простой , для проверки.
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Все делают ошибки, только мудрецы - новые, а дураки - старые.
Re: BASCOM AVR в вопросах и ответах
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 в вопросах и ответах
Advent молчит, не ответил...
- kip96
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Ср авг 26, 2009 08:24:50
- Откуда: 1300км от Пупа
Re: BASCOM AVR в вопросах и ответах
реально индикатор как бы состоит из 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 в вопросах и ответах
сейчас как раз общаемся с Марком. Перенаправлю ваш пример ему
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.
А знали бы английский - сами задали бы вопрос разработчику языка...
Re: BASCOM AVR в вопросах и ответах
А если "пошаманить" командой POWER MODEedm2007 писал(а): В рабочем режиме один МК при тактовой 4 МГц и питании 3 В кушает около 1,3 mА, а в powerdown 0,35 mА
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Ну да, я выше об этом и написал.
На самом деле так оно и оказалось. POWER POWERDOWN, и в результате тестер потребляемый ток вообще не видит. Одни нули.
edm2007 писал(а):Это не POWER MODE ли?
На самом деле так оно и оказалось. POWER POWERDOWN, и в результате тестер потребляемый ток вообще не видит. Одни нули.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Правда выход из этого режима только по НИЗКОМУ уровню внешнего прерывания. А оно генерируется все время, пока этот самый уровень низкий. При работе программы это прерывание запрещено, разрешается непосредственно перед засыпанием. Но вот вылезла одна неудобность. Если кнопка будет удерживаться все время, то как только прерывание будет разрешено, оно тут же начнет обрабатываться. А в обработчике это прерывание запрещается, чтобы не мешать основной программе.А потом, после обработки, он сразу же уснет. С запрещенным прерыванием.
Разумеется, что проснуться уже не получится. Вот я и думаю, воткнуть перед разрешением прерывания ожидание отпускания кнопки, что ли...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
-
aleksandr-zh
- Сверлит текстолит когтями
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
Re: BASCOM AVR в вопросах и ответах
user2007 писал(а):Господин Модератор! Мне угрожают от Вашего имени!
не стоит ТАК сильно изменять свои жиденькие сообщения до полного изменения смысла последних!
-
aleksandr-zh
- Сверлит текстолит когтями
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
Re: BASCOM AVR в вопросах и ответах
kip96 писал(а):kip96 писал(а):Похоже и со своей проблемой решил. Завтра в железе проверю
Вообщем опять я про индикатор 16*1а
Рано я радовался!
Кроме того что писать 16 символов в одной строке, больше ни чего не даёт. Да ещё и памяти жрёт по сравнению с 16*1 -аж пипец как много, я аж на ... сел![]()
![]()
![]()
Сдвигать надпись не сдвигает корректно (т.е. до середины экрана доходит и пропадает),
Locate 1 , 9 и выше не выводит символ, нужно писать Locate 2 , 1(переходить на вторую строку). Даже в симуляторе это видно.
Короче дешевле конфигурировать под 16*1 и писать с оверлайном. Так-то.![]()
не могу понять Вашей проблемы
что надо получить в итоге?
проверил - у меня на 16х2 работает, как и в симуляторе
- kip96
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Ср авг 26, 2009 08:24:50
- Откуда: 1300км от Пупа
Re: BASCOM AVR в вопросах и ответах
У меня индикатор 16 знакомест на одной линии физически, програмно 8 знакомест на 2-х линиях. Для Баскома 16*1А
При сдвигании надписи выходит так:

Это-же не нормально!
При сдвигании надписи выходит так:
Это-же не нормально!
- Вложения
-
- пример.JPG
- (39.93 КБ) 1820 скачиваний
Все делают ошибки, только мудрецы - новые, а дураки - старые.
- kip96
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Ср авг 26, 2009 08:24:50
- Откуда: 1300км от Пупа
Re: BASCOM AVR в вопросах и ответах
aleksandr-zh писал(а):проверил - у меня на 16х2 работает, как и в симуляторе
В программе-же
Код: Выделить всё
Config Lcd = 16 * 1aСимулятор выдаёт на экран 16 *2
и прописывает по 8 символов в каждой линииВсе делают ошибки, только мудрецы - новые, а дураки - старые.
-
aleksandr-zh
- Сверлит текстолит когтями
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
Re: BASCOM AVR в вопросах и ответах
вы не понимаете устройство индикатора, скачайте полный мануал на эту серию
а то, что кажет симулятор - так и должно быть, он же - 16х2!
ЖКИ - память
и она виртуально бесконечна для строки
а апаратно - ограничена
вы же сами написали: две строки по 8 символов = спец индикатор 16а
не пользуйтесь вы всякими симуляторами!
что кажет реальный?
а то, что кажет симулятор - так и должно быть, он же - 16х2!
ЖКИ - память
и она виртуально бесконечна для строки
а апаратно - ограничена
вы же сами написали: две строки по 8 символов = спец индикатор 16а
не пользуйтесь вы всякими симуляторами!
что кажет реальный?
- kip96
- Держит паяльник хвостом
- Сообщения: 965
- Зарегистрирован: Ср авг 26, 2009 08:24:50
- Откуда: 1300км от Пупа
Re: BASCOM AVR в вопросах и ответах
То он и кажет, что я нарисовал. Все наблюдения с реального индикатора. В симулятор я уже потом лезу, для проверки.
Тем не менее, при индикаторе 16*1 симулятор показывает именно его, и при 40*4 так-же и при 20 * 2. Чем-же 16*1а не угодил
Что-бы провести операции с 16*2 в Баскоме, я вообще об этом индикаторе ни чего не знал.
Что такого я должен понимать, что-бы на индикатое сдвинуть строчку при помощи языка высокого уровня.
Т.Е. я конечно смогу это сделать, но это будет не так-же просто, как с другими индикаторами, а равно как через ж....у.
Я просто констатирую факт(наверное) и пока считаю что это баг. Ведь я же могу сконфигурировать как 16*1а, а полноценные операции проделовать не могу. Другое дело если-бы 16*1а в Баскоме не было. Тогда сам додумывай.
aleksandr-zh писал(а):а то, что кажет симулятор - так и должно быть, он же - 16х2!
Тем не менее, при индикаторе 16*1 симулятор показывает именно его, и при 40*4 так-же и при 20 * 2. Чем-же 16*1а не угодил
aleksandr-zh писал(а):вы не понимаете устройство индикатора, скачайте полный мануал на эту серию
Что-бы провести операции с 16*2 в Баскоме, я вообще об этом индикаторе ни чего не знал.
Что такого я должен понимать, что-бы на индикатое сдвинуть строчку при помощи языка высокого уровня.
Т.Е. я конечно смогу это сделать, но это будет не так-же просто, как с другими индикаторами, а равно как через ж....у.
Я просто констатирую факт(наверное) и пока считаю что это баг. Ведь я же могу сконфигурировать как 16*1а, а полноценные операции проделовать не могу. Другое дело если-бы 16*1а в Баскоме не было. Тогда сам додумывай.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
- Gordon Shumway
- Мучитель микросхем
- Сообщения: 485
- Зарегистрирован: Пн авг 20, 2007 21:35:45
- Откуда: Мытищи, Московская область
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Доброго времени суток, уважаемые знатоки !
Всех с Новым годом !
Подскажите, пожалуйста по Баскому !
Нужно принять цифру в двоичном коде (по типу как со счетчика 176ие2 на дешифратор на 176ид3)
то есть научить контроллер разобраться какая цифра пришла по четырем проводам и запомнить ее до некоторого действия. Выводить на индикатор не нужно. С баскомом только разбираюсь, так что извините, если вопрос "чайника"
Спасибо заранее за ответы !
Всех с Новым годом !
Подскажите, пожалуйста по Баскому !
Нужно принять цифру в двоичном коде (по типу как со счетчика 176ие2 на дешифратор на 176ид3)
то есть научить контроллер разобраться какая цифра пришла по четырем проводам и запомнить ее до некоторого действия. Выводить на индикатор не нужно. С баскомом только разбираюсь, так что извините, если вопрос "чайника"
Спасибо заранее за ответы !
С уважением,
Алексей.
Алексей.
-
aleksandr-zh
- Сверлит текстолит когтями
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
Re: BASCOM AVR в вопросах и ответах
вопрос неконретный. Если я верно понял, необходимо принять 4 разряда\бита в паралельном коде
Значит:
завидите данные на порт (согласовав уровни),
в программе создаете (объявляете) переменную типа Байт (dim data_my as byte),
читаете данные порта в эту переменную (data_my = pinX), где Х = имя порта
Потом выделяете или "ручками" считываете соответствующие разряды\биты
например, вы подключили данные к младшей половине порта (Д0-Д3), остальные биты вам не нужны. Значит, используя команду сдвига можете от "ненужных" бит избавиться, сдвинув их. Т.е., сдвигаете "вправо" к старшим разрядам 4 раза. Ваши 4 бита станут в вершней половине, а младшие будут = 0
или сдвигаете влево, к младшим разрядам, если подключено в Д4-Д7
Можно просто обнулить ненужные биты, используя команды битовых операций. Для вас OR и AND подойдут
удачи
Значит:
завидите данные на порт (согласовав уровни),
в программе создаете (объявляете) переменную типа Байт (dim data_my as byte),
читаете данные порта в эту переменную (data_my = pinX), где Х = имя порта
Потом выделяете или "ручками" считываете соответствующие разряды\биты
например, вы подключили данные к младшей половине порта (Д0-Д3), остальные биты вам не нужны. Значит, используя команду сдвига можете от "ненужных" бит избавиться, сдвинув их. Т.е., сдвигаете "вправо" к старшим разрядам 4 раза. Ваши 4 бита станут в вершней половине, а младшие будут = 0
или сдвигаете влево, к младшим разрядам, если подключено в Д4-Д7
Можно просто обнулить ненужные биты, используя команды битовых операций. Для вас OR и AND подойдут
удачи
Re: BASCOM AVR в вопросах и ответах
Без вопросов.
Шапка:
...
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......'см.выше

Шапка:
...
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 раза.