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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
uni
Встал на лапы
Сообщения: 137
Зарегистрирован: Пт дек 07, 2007 11:17:40
Откуда: г. Екатеринбург
Контактная информация:

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

Сообщение uni »

Смысл в отладочном средстве, которое может работать с расширенным терминалом. Я проект в Proteus показал как демонстрацию возможностей модуля Console. Внимание нужно обращать не на функционал конкретного проекта, а на возможности по псевдографической визуализации информации в терминале.

Модуль одинаково будет работать как при моделировании в Proteus, так и на реальном железе. Кушает флеша пока много. Те же часики можно показать вот так.

Изображение

П. С. Как варинат ещё можно в терминале управлять уровнями портов.

Изображение
Последний раз редактировалось uni Вс окт 27, 2013 20:54:03, всего редактировалось 1 раз.
Россия навсегда!
harrd
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Ср апр 01, 2009 17:52:51

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

Сообщение harrd »

pavel1979, видел несколько схем с AVR и дешифратором К155ид1, но нигде эти входы не были подтянуты к плюсу. Дешифратор считывает показания с аврки, но на выходе выдаёт полную ересь, например 33 часа 87 минут
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

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

Сообщение pavel1979 »

harrd писал(а):pavel1979, видел несколько схем с AVR и дешифратором К155ид1, но нигде эти входы не были подтянуты к плюсу. Дешифратор считывает показания с аврки, но на выходе выдаёт полную ересь, например 33 часа 87 минут

то есть сами цифры светятся и сменяются каждую минуту?посмотрю ваш исходник,может что найду...
а к дешифратору сегменты правильно подключены?
harrd
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Ср апр 01, 2009 17:52:51

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

Сообщение harrd »

Цифры светятся и сменяются, секундная точка моргает, монтаж перепроверен многократно
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

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

Сообщение pavel1979 »

не знаю...где вы взяли исходник?
считывать можно проще-
СпойлерI2cstart
I2cwbyte &HD0
I2cwbyte &H00
I2cstart
I2cwbyte &HD1
I2crbyte Seco , Ack
I2crbyte Mine , Ack
I2crbyte Hour , Ack
I2crbyte Day , Ack
I2crbyte Dat , Ack
I2crbyte Month , Ack
I2crbyte Year , Nack
I2cstop
Seco = Makedec(seco)
Mine = Makedec(mine)
Hour = Makedec(hour)
Day = Makedec(day)
Dat = Makedec(dat)
Month = Makedec(month)
Year = Makedec(year)

если б я делал,то сделал бы без DS1307,просто кварц дбавляется
harrd
Первый раз сказал Мяу!
Сообщения: 37
Зарегистрирован: Ср апр 01, 2009 17:52:51

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

Сообщение harrd »

Исходник взял на схемнете, прошивка написана 15-тилетним парнем, я просил его переделать код с семисегментных LED под дешифратор ГРИ, его код не заработал в протеусе, я переделал сам этот блок "Data &B00000000 , &B10000000 , &B01000000 , &B11000000 , &B00100000
Data &B10100000 , &B01100000 , &B11100000 , &B00010000 , &B10010000" и этот "Dig1 Alias Portb.0 : Dig2 Alias Portb.1 : Dig3 Alias Portb.2 : Dig4 Alias Portb.3" в меру своего разумения. Пожалуйста, исправьте прошивку и напишите к ней комментарии.
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

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

Сообщение pavel1979 »

Решил использовать в одном своем проекте pcf8583 http://mcucpu.ru/index.php/pdevices/39-datchik/73-pcf8583.время извлек без проблем,а вот дата... вместо 29/10(29 октября) показывает 70/69 вот скрин протеуса
СпойлерИзображение

и сама программа,может кто работал с pcf
Спойлер'----------

'----------
$regfile = "m16DEF.dAT"
$crystal = 8000000
'############################ Конфигурация_ЖКИ #################################
Config Lcdbus = 4
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.2 , Rs = Porta.0
Cursor Off
Cls

'----------
Config Sda = Portc.1
Config Scl = Portc.0
Config Portd = Output
Config Clock = User
Config Date = Mdy , Separator = /
'Config 1wire = Pine.0
Config Watchdog = 2048 'бешаный пес на 2.2 секунды
Set Portc.3
Set Portc.2
Set Portc.4
Set Portc.5
Cn Alias Pinc.3 'Вниз
Cv Alias Pinc.2 'Вверх
Vv Alias Pinc.4 'Ввод
M Alias Pinc.5 'Меню
Light Alias Portd.2 'свет
Air Alias Portd.3 'воздух
Filter Alias Portd.4 'фильтр
Heater Alias Portd.5 'нагрев


'----------
Const Pcf8583w = &HA0
Const Pcf8583r = &HA1
'----------
Deflcdchar 0 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32 'символ градуса
'----------
Dim J1 As Byte
Dim M1 As Byte
Dim D1 As Byte
Dim H1 As Byte
Dim Min1 As Byte
Dim _min_real As Byte
Dim _min_temp As Byte
Dim Aa As Byte
Dim Xp As Byte
Dim Bd(9) As Byte
Dim Tmp As Byte
Dim T As Integer
Dim Tz As Integer
Dim T1 As Integer
Dim Ee_temp As Eram Integer
Dim Ee_h_on As Eram Byte
Dim Ee_h_off As Eram Byte
Dim H_on As Byte
Dim H_off As Byte
Dim Ee_air_on As Eram Byte
Dim Ee_air_off As Eram Byte
Dim Air_on As Byte
Dim Air_off As Byte
Dim T_filter_off As Integer

'################################### Процедуры #################################
Declare Sub Enterdatetime
Declare Sub Getkey
Declare Sub Menu
Declare Sub Digit
Declare Sub Gettemp
Declare Sub Termostat
Declare Sub Light_set
Declare Sub Air_set
Declare Sub Filter_set
Declare Sub Filt

'############################ Начальные установки ##############################


T_filter_off = 0
Heater = 0
Light = 0
Air = 0
Filter = 1


Cls
Cursor Off
Locate 1 , 2
Lcd "Akva kont v1.0"
Locate 2 , 4
Lcd "by Vet@ll"
Waitms 500
Cls

'##################### Основной цикл программы #################################
'Start Watchdog
Do
'Reset Watchdog
' Call Gettemp
Locate 1 , 1
Lcd Time$ ; " "
Locate 2 , 1
Lcd Date$ ; " "
If M = 0 Then
Gosub Menu
End If



Loop
End

'##################### Чтение/запись времени в RTC #############################
Getdatetime:
I2cstart ' Generate start code
I2cwbyte Pcf8583w 'Отправка адреса
I2cwbyte 2 'Стартовый адрес
I2cstart ' Generate start code
I2cwbyte Pcf8583r 'Отправка адреса
I2crbyte _sec , Ack 'Секунды
I2crbyte _min , Ack 'Минуты
I2crbyte _hour , Ack 'Часы
I2crbyte _day , Ack 'Секунды
I2crbyte _month, Ack 'Минуты
I2crbyte _year, Nack 'Часы
I2cstop
_sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
_day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)



Return

Settime:
_sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
I2cstart ' Generate start code
I2cwbyte Pcf8583w ' send address
I2cwbyte 2
I2cwbyte _sec ' Send Data to SECONDS
I2cwbyte _min ' MINUTES
I2cwbyte _hour ' Hours
I2cstop
Return
End

'########################## Процедура чтения температуры #######################
'########################### Меню ввода данных #################################
'_____ часов_________________________________
Sub Enterdatetime
Cls
Aa = 0
Xp = _hour
Do
If Xp > 23 Then Xp = 0
Locate 1 , 1
Lcd "** Setup time **"
Locate 2 , 1
Lcd "Set hours: " ; Xp ; " "
Getkey
H1 = Xp
Loop Until Aa = 1

'---------- минут--------------------------------
Cls
Aa = 0
Xp = _min
Do
If Xp > 59 Then Xp = 0
Locate 1 , 1
Lcd "** Setup time **"
Locate 2 , 1
Lcd "Set minutes: " ; Xp ; " "
Getkey
Min1 = Xp
Loop Until Aa = 1

_hour = H1
_min = Min1
_sec = 0
Gosub Settime
End Sub

'######################### Меню опроса кнопок ##################################
Sub Getkey
Waitms 500
If Cv = 0 Then Incr Xp
If Cn = 0 Then Decr Xp
If Vv = 0 Then
Aa = 1
Reset Watchdog
Else
Aa = 0
End If
Reset Watchdog
End Sub
'----------
Sub Menu
Aa = 0
Xp = 0
Getkey
Enterdatetime
Cls
Lcd " Please Wait!"
End Sub
End
Аватара пользователя
vem566
Друг Кота
Сообщения: 4732
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

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

Сообщение vem566 »

Игрался я с ним. У него в дате есть еще день недели. Не помню, какой байт. Даташит смотреть нужно.
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

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

Сообщение pavel1979 »

в общем так
берем Регистр Дата (05h),он состоит из 8 бит
Y1 Y0 DD1 DD0 D3 D2 D1 D0,где
D0-D3 – единицы дней в BCD формате
DD0-DD1 – десятки дней
Y0-Y1 – год
извлекаем,получаем _day =69,то есть в бин десятки 0110 и единицы 1001,а мне надо 0010 и 1001 соответственно
так вот,это переменная _day,как можно откинуть 2 старших байта?вижу так-преобразовать в строку и извлечь оттуда младшие 6 бит,но как?
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

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

Сообщение pavel1979 »

добавил строчки
Portsate = _day
Portsate = Portsate / 10
Label1: '
If Portsate > 4 Then
Portsate = Portsate - 4
_day = _day - 40
Goto Label1
End If


Portsate = _month
Portsate = Portsate / 10
Label2: '
If Portsate > 2 Then
Portsate = Portsate - 2
_month = _month - 20
Goto Label2
End If
вроде показывает нормально,как надо...
goldskif
Открыл глаза
Сообщения: 68
Зарегистрирован: Пт окт 25, 2013 17:13:03

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

Сообщение goldskif »

Посоветоваться хочу.
Чтобы экран таймера палками забить, можно приведенный код применить или есть варианты более короткий? А то у меня уже бутлоадер ругается

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

Lcd "START "
Wait 5
Lcd "|"
Wait 5
Lcd "|"
Wait 5
Lcd "|"
Wait 5
Lcd "|"
Wait 5
Lcd "|"
Wait 5
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

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

Сообщение pavel1979 »

можно просто
lcd "l l l l l l l l l l" (L маленькая)
можно самому нарисовать всен что угодно в каждом сегменте с разрешением 5/8 http://avr.ru/beginer/bascom/article18
Аватара пользователя
uni
Встал на лапы
Сообщения: 137
Зарегистрирован: Пт дек 07, 2007 11:17:40
Откуда: г. Екатеринбург
Контактная информация:

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

Сообщение uni »

Ещё пример работы с PCF8583 есть на официальном форуме BASCOM в разделе примеров кода: RTC PCF8583 read Function and write Soubroutine.
Прикладываю файл оттуда.
Вложения
pcf8583.inc.txt
pcf8583.inc.txt
(7.55 КБ) 208 скачиваний
Россия навсегда!
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

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

Сообщение pavel1979 »

uni писал(а):Ещё пример работы с PCF8583 есть на официальном форуме BASCOM в разделе примеров кода: RTC PCF8583 read Function and write Soubroutine.
Прикладываю файл оттуда.

что-то на баском не похоже...не компилируется,сплошные ошибки,но увидел строчки
Shift I , Left , 5 вроде как сдвиг,читаю HELP,мне как раз надо сдвинуть месяц и число,тогда получу день недели и год(год такто не нужен,просто интересно)
Последний раз редактировалось pavel1979 Ср окт 30, 2013 15:38:53, всего редактировалось 1 раз.
Аватара пользователя
uni
Встал на лапы
Сообщения: 137
Зарегистрирован: Пт дек 07, 2007 11:17:40
Откуда: г. Екатеринбург
Контактная информация:

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

Сообщение uni »

Не похоже? Это в каком смысле?

Вот я пишу так, что действительно не похоже: MainUnit.bas. А там самый обычный bascom avr.

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

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

Сообщение edm2007 »

pavel1979 писал(а):можно просто...


Речь про прогресс бар шла. Постепенное заполнение, аки загрузка. :)

goldskif, ну Вы же видите что один и тот же код повторяется. Ясно же что в цикл можно завернуть:

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

Dim Temp As Byte 

For Temp = 1 To 16
   Locate 1 , Temp
   Lcd "*"
   Waitms 500
Next
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Scorpushka
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Ср апр 15, 2009 14:58:49
Откуда: РБ
Контактная информация:

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

Сообщение Scorpushka »

edm2007 привет! (это мой первый учитель, который меня влюбил в МК), сайт новый не сделал?

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

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

Сообщение edm2007 »

Привет. Неа, не сделал. Времени слишком мало, а интересных дел слишком много. :wink: . Семисегментник подключал по просьбе, ага. Только на Си писал. Работать с этим драйвером легко и приятно. Касаемо же баскома, то есть пара статей (не скажу что нравится, но все же):

ДРАЙВЕР ИНДИКАТОРОВ MAX7221. ЧАСТЬ 1

ДРАЙВЕР ИНДИКАТОРОВ MAX7221. ЧАСТЬ 2
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Scorpushka
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Ср апр 15, 2009 14:58:49
Откуда: РБ
Контактная информация:

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

Сообщение Scorpushka »

все, разобрался с посегментным включением, сейчас сочленяю 7221 и матрицу из 64ледов 8х8. получается необходимо применить динамическую индикацию, перебирая 8строк и 8столбцов. (строки это DIG0-DIG7, столбцы DP,A,B...G)

т.е. для движения точки в первой строке делаем так-включили DIG1-7 (остается минус на DIG0), включили SEG DP (первая точка)
ждем
выключаем все
вторая точка в первой строке включили DIG1-7(остается минус на DIG0), включили SEG А (вторая точка)

правильно?
Вложения
схема 8х8.png
(108.46 КБ) 435 скачиваний
Аватара пользователя
uni
Встал на лапы
Сообщения: 137
Зарегистрирован: Пт дек 07, 2007 11:17:40
Откуда: г. Екатеринбург
Контактная информация:

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

Сообщение uni »

Утилита objdump для формирования смешанного листинга (бейсик + ассемблер): objdump для AVR Object File (AOF).

Изображение
Россия навсегда!
Ответить

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