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

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

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

Сообщение Magicanin »

' Пример часов которые отображают часы и минуты на семисегментном
' четырехсимвольном светодиодном индикаторе
' прога для ознакомления, работает 100%
' выставленные фюзы (в понипроге стоят галки на):CKOPT,BOOTSZ1,BOOTSZ0,SUT1,SUT0,CKSEL3,CKSEL1,CKSEL0
' Кварц выдрал из маленького тетриса с часами, думаю также подойдет из любых кварцевых наручных/настенных часов
[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]
Grafstein
Родился
Сообщения: 2
Зарегистрирован: Чт фев 02, 2012 22:41:45

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

Сообщение Grafstein »

помогите чаинику разобратся с таимерами и баскомом..чтото я залип на них..вроде все и понятно но в тоже время ничего не поиму, мозг от нагугленнои инфы уже просто взрывается))) помогите с примером реализации простои задачи как подсчет импульсов на одном из портов за определенный период времени, скажем одну секунду..немогу понять как это реализовать с помощью таимеров и все тут :(
Аватара пользователя
dimon-790
Мучитель микросхем
Сообщения: 442
Зарегистрирован: Пт авг 29, 2008 09:22:37
Контактная информация:

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

Сообщение dimon-790 »

Может кто сталкивался с расчётом котрольной суммы?, например вот такой набор чисел имеем :11H;00H;02H;0BH;00H;контр.сумма= 3EH по каким алгоритмам считать чтобы получить это число ?
P.S. Grafstein обучалок по баскому , как грязи , и уж тем более для начинающих , не ленись читай , пробуй за тебя это делать никто не будет.
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

vanyap1 писал(а):Как оставить после комы только один знак, а все остальное убрать? Это надо сделать до вывода на экран.


Можно поступить очень просто:

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

Dim U As Single
Config Single = Scientific , Digits = 1     ' в переменных оставляем одну цифру после запятой (1 - 7)

.....................

U = 1.2345
Lcd U                                                   ' на индикацию будет выведено 1.2



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

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

Сообщение edm2007 »

Magicanin писал(а):помогите с примером реализации простои задачи как подсчет импульсов на одном из портов за определенный период времени, скажем одну секунду..немогу понять как это реализовать с помощью таимеров и все тут


Можно сделать так: Один таймер настроить на подсчет внешних импульсов, а на втором таймере сделать отсчет 1 секунды. И пускай молотят. Как только второй таймер отщелкает 1 секунду, заглядываем в счетный регистр первого таймера и забираем результат. Далее обнуляем все что нужно, и все начинается снова.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Tom91
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт окт 08, 2010 15:43:55

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

Сообщение Tom91 »

Можно ли заставить общаться контроллеры через I2C интерфейс...?
Если да, то как? есть ли пример кода?
vanyap1
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина
Контактная информация:

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

Сообщение vanyap1 »

А rs232 ?

И да, действительно, зачем в даташитах для мк atmegaXX пишут о присутствии I2C? А в tiny нет такой функции, но есть возможность сконфигурировать ноги для работы с этими устройствами.

Собственно в чем разница между этими мк, что касается I2C? Если в програмной части все одинаково.
Tom91
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт окт 08, 2010 15:43:55

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

Сообщение Tom91 »

vanyap1 писал(а):А rs232 ?

И да, действительно, зачем в даташитах для мк atmegaXX пишут о присутствии I2C? А в tiny нет такой функции, но есть возможность сконфигурировать ноги для работы с этими устройствами.

Собственно в чем разница между этими мк, что касается I2C? Если в програмной части все одинаково.

Ну раз Вам так всё просто, то привидите пример программы общения двух МК на Bascom AVR... я бы сам давно написал, но не понимаю можно ли программно присвоить адреса контроллерам чтобы они понимали к кому из них идёт обращение?
vanyap1
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина
Контактная информация:

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

Сообщение vanyap1 »

Нет, я не говорю что для меня это просто. Я пока что новичок в этом деле.
Просто это про rs232.

Вот просто заинтересовал такой нюанс.
Tom91
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт окт 08, 2010 15:43:55

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

Сообщение Tom91 »

vanyap1 писал(а):Просто это про rs232.

Если вы про UART то он занять для связи с ПК... а связать два мк по нему конечно реально.

vanyap1 писал(а):И да, действительно, зачем в даташитах для мк atmegaXX пишут о присутствии I2C? А в tiny нет такой функции, но есть возможность сконфигурировать ноги для работы с этими устройствами.
Вот просто заинтересовал такой нюанс.

Просто Bascom AVR реализует если не ошибаюсь только программый I2C, без возможности аппаратного.
Аватара пользователя
mr4ester
Держит паяльник хвостом
Сообщения: 900
Зарегистрирован: Чт авг 27, 2009 20:09:01
Откуда: Приднестровье г.Бендеры
Контактная информация:

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

Сообщение mr4ester »

подскажите как можно реализовать такую функцию, вот что нужно пример

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

If A= B или С then
как реализовать это ИЛИ пробовал команду or но она для других переменных, а у меня строковые?
Работа избавляет нас от трех великих зол: скуки, порока, нужды. (Вольтер)
Аватара пользователя
Moto_v3x
Потрогал лапой паяльник
Сообщения: 307
Зарегистрирован: Ср мар 31, 2010 11:45:58
Откуда: Славянск

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

Сообщение Moto_v3x »

А так

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

If A= B or  A= С then
Аватара пользователя
mr4ester
Держит паяльник хвостом
Сообщения: 900
Зарегистрирован: Чт авг 27, 2009 20:09:01
Откуда: Приднестровье г.Бендеры
Контактная информация:

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

Сообщение mr4ester »

спасибо помогло! :beer:
Работа избавляет нас от трех великих зол: скуки, порока, нужды. (Вольтер)
vanyap1
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина
Контактная информация:

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

Сообщение vanyap1 »

Как можно регистрировать последовательность фаз в 3-х фазной сети?
Думал так - одну фазу на прерывание остальные на порты. По прерыванию определять если на второй фазе 1, то действие. Если 0 то второе действие.

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

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

Сообщение Magicanin »

vanyap1 писал(а):Как можно регистрировать последовательность фаз в 3-х фазной сети?
Думал так - одну фазу на прерывание остальные на порты. По прерыванию определять если на второй фазе 1, то действие. Если 0 то второе действие.

Или есть еще идеи по поводу этого?


Можно подать на входы АЦП (заодно и амплитуду померить) и регистрировать последовательность по амплитуде.
[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]
Аватара пользователя
Gordon Shumway
Мучитель микросхем
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область
Контактная информация:

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

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

Всем доброго времени суток !

Поздравляю уважаемого Кота и всех посетителей сайта и форума с удачным переездом ! Ура !

А теперь вопрос:

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

Config Int0 = Rising
Config Int1 = Low Level
On Int0 Startds
On Int1 Backup

'int0 получает сигнал с ноги Sout DS1307

Do
If Pind.4 = 0 Then Gosub Settime
Loop

Startds:

'тут читаются данные из DS1307
' и выводятся на дисплей 16х2
return

Settime:

'тут установка времени -
'Pind.5 - часы в плюс,
'Pind.6 - минуты в плюс,
'Pind.4 - ок, записать и выйти из подпрограммы.

Disable Interrupts
Disable Int0
Disable Int1

Beep = 1
Waitms 100
Beep = 0

Waitms 500

Locate 2 , 1
Lcd "Kop.«« MM       "

Do

'установка часов

If Pind.5 = 0 Then
Hour = Hour + 1
'If hour = 13 Then hour = 1
Ho = Str(hour)
Ho = Format(ho , "00")
Locate 1 , 5
Lcd Ho
Beep = 1
Waitms 60
Beep = 0
Waitms 150
End If

'установка минут

If Pind.6 = 0 Then
Mine = Mine + 1
If Mine > 59 Then mine = 0
Mi = Str(mine)
Mi = Format(mi , "00")
Locate 1 , 8
Lcd Mi
Beep = 1
Waitms 60
Beep = 0
Waitms 150
End If

'ОК

If Pind.4 = 0 Then

Hour = Makebcd(hour)
Mine = Makebcd(mine)

I2cstart
I2cwbyte Ds1307w
I2cwbyte 0
I2cwbyte 1
I2cwbyte Mine
I2cwbyte Hour
I2cstop

Beep = 1
Waitms 200
Beep = 0

Return

End If

Loop


После нажатия ОК не происходит выход из подпрограммы. Новые данные заносятся в DS1307 - это видно в протеусе.
А выхода обратно нет...

Beep - это буззер с генератором пикает.
INT1 - это при пропадании питания подпрограмма пишет нужные данные в ЕЕПРОМ.

Для проверки все лишние подпрограммы и прерывания отключал. Проверял в протеусе. В реальную железку пока не заливал.
С уважением,
Алексей.
Аватара пользователя
Gordon Shumway
Мучитель микросхем
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область
Контактная информация:

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

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

Gordon Shumway писал(а):Всем доброго времени суток !

Поздравляю уважаемого Кота и всех посетителей сайта и форума с удачным переездом ! Ура !

А теперь вопрос:

Спойлер

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

Config Int0 = Rising
Config Int1 = Low Level
On Int0 Startds
On Int1 Backup

'int0 получает сигнал с ноги Sout DS1307

Do
If Pind.4 = 0 Then Gosub Settime
Loop

Startds:

'тут читаются данные из DS1307
' и выводятся на дисплей 16х2
return

Settime:

'тут установка времени -
'Pind.5 - часы в плюс,
'Pind.6 - минуты в плюс,
'Pind.4 - ок, записать и выйти из подпрограммы.

Disable Interrupts
Disable Int0
Disable Int1

Beep = 1
Waitms 100
Beep = 0

Waitms 500

Locate 2 , 1
Lcd "Kop.«« MM       "

Do

'установка часов

If Pind.5 = 0 Then
Hour = Hour + 1
'If hour = 13 Then hour = 1
Ho = Str(hour)
Ho = Format(ho , "00")
Locate 1 , 5
Lcd Ho
Beep = 1
Waitms 60
Beep = 0
Waitms 150
End If

'установка минут

If Pind.6 = 0 Then
Mine = Mine + 1
If Mine > 59 Then mine = 0
Mi = Str(mine)
Mi = Format(mi , "00")
Locate 1 , 8
Lcd Mi
Beep = 1
Waitms 60
Beep = 0
Waitms 150
End If

'ОК

If Pind.4 = 0 Then

Hour = Makebcd(hour)
Mine = Makebcd(mine)

I2cstart
I2cwbyte Ds1307w
I2cwbyte 0
I2cwbyte 1
I2cwbyte Mine
I2cwbyte Hour
I2cstop

Beep = 1
Waitms 200
Beep = 0

Return

End If

Loop


После нажатия ОК не происходит выход из подпрограммы. Новые данные заносятся в DS1307 - это видно в протеусе.
А выхода обратно нет...


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

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

Сообщение edm2007 »

Так вот оно обычно и бывает. :))
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
vanyap1
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина
Контактная информация:

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

Сообщение vanyap1 »

Можно как то подключить ЖКИ к тини 13?
К примеру, через hc595?
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

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

Сообщение hybroid »

Через сдвиговый регистр можно, но можете смело производительность поделить на.. на сколько там?
Ответить

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