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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

Да да, я понял :) Пост свой поправлял, а Вы уже ответили :)
Плюсую...

Тут Вы используете прерывание, чтобы сменить оставшееся время задержки. Но ведь можно это делать и внутри цикла, не правда ли ?
Мозговая атака продолжается... :)))
8 кнопок и 8 светиков. Для каждого из них делаем такую задержку, но независимо друг от друга. Т.е. пока один любой канал работает, другой любой может включаться/отключаться в любое время.
Реклама
Аватара пользователя
Balzercvua
Потрогал лапой паяльник
Сообщения: 311
Зарегистрирован: Вт дек 31, 2013 17:36:43

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

Сообщение Balzercvua »

Config Porta = Input
Config Portd = Output
Dim D0 As Long
D0 = 0
Dim D1 As Long
D1 = 0
Dim D2 As Long
D2 = 0
Dim D3 As Long
D3 = 0
Dim D4 As Long
D4 = 0
Dim D5 As Long
D5 = 0
Dim D6 As Long
D6 = 0
Dim D7 As Long
D7 = 0
Dim A As Byte
Dim B As Long




Do



If D0 > 1 Then

D0 = D0 - 1
Else
Portd.0 = 0
End If



If D1 > 1 Then
D1 = D1 - 1
Else
Portd.1 = 0
End If



If D2 > 1 Then
D2 = D2 - 1
Else
Portd.2 = 0
End If



If D3 > 1 Then
D3 = D3 - 1
Else
Portd.3 = 0
End If



If D4 > 1 Then
D4 = D4 - 1
Else
Portd.4 = 0
End If



If D5 > 1 Then
D5 = D5 - 1
Else
Portd.5 = 0
End If


If D6 > 1 Then
D6 = D6 - 1
Else
Portd.6 = 0
End If




If D7 > 1 Then
D7 = D7 - 1
Else
Portd.7 = 0
End If



Waitms 1



If Pina.0 = 1 Then
A = 0
Gosub Trig
D0 = B
Waitms 200
End If



If Pina.1 = 1 Then
A = 1
Gosub Trig
D1 = B
Waitms 200
End If



If Pina.2 = 1 Then
A = 2
Gosub Trig
D2 = B
Waitms 200
End If


If Pina.3 = 1 Then
A = 3
Gosub Trig
D3 = B
Waitms 200
End If



If Pina.4 = 1 Then
A = 4
Gosub Trig
D4 = B
Waitms 200
End If



If Pina.5 = 1 Then
A = 5
Gosub Trig
D5 = B
Waitms 200
End If



If Pina.6 = 1 Then
A = 6
Gosub Trig
D6 = B
Waitms 200
End If


If Pina.7 = 1 Then
A = 7
Gosub Trig
D7 = B
Waitms 200
End If




Loop
Trig:
If Portd.a = 0 Then
Portd.a = 1
B = 5000
Else
B = 0
End If

Return
End
Реклама
Novice user
Мудрый кот
Сообщения: 1704
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

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

Сообщение Novice user »

BASCOM AVR 2.07.8 пришлось переустановить-глючить начал,теперь
1)закрываю программу,запускаю снова-приходиться по новой ставить русский интерфейс,настраивать тип программатора
2)каждый раз когда нажимаю равно (=) вылазит ошибка "There was an error during the execution of this program.
The application might become unstable and even useless.
It's recommended that you save your work and close this application.

Access violation at address 008D7965 in module 'bascavr.exe'. Read of address 00000000.",перевод гугл-Была ошибка во время выполнения этой программы.
Приложение могло бы стать нестабильным и даже бесполезным.
Рекомендуется, чтобы Вы сохранили свою работу и закрыли это приложение.

Нарушение прав доступа в адресе 008D7965 в модуле 'bascavr.exe'. Чтение адреса 00000000.
3)при компиляции все норм,при прошивке иногда сбои(хоть ардуино,хоть усбасп)-зависает программа,а потом баском авр автоматом закрывается и все по новой(пункт 1)
пробовал переустановить еще 2 раза-все то же

что может быть?

до этого пользовался ею же полгода гдето и никаких проблем не было
добавил позже-
видимо никто не сталкивался
откатился назад(восстановление системы),восстановилась прежняя версия баском(которой пользовался полгода),пусть тупит,но мороки нет
Novice user
Мудрый кот
Сообщения: 1704
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

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

Сообщение Novice user »

Часы атмега328+ds1307 не хотят идти-стоят на ноле,где может быть ошибка?
резервная батарея 3 в,SCL SDA подтянуты к +5 в резисторами 5,1 ком,в протеусе все нормально
Спойлер$regfile = "m328pdef.dat"
$crystal = 16000000
$framesize = 32
$hwstack = 40
$swstack = 16
$baud = 9600


Config Sda = Portc.4 '???????????? ?????? I2c
Config Scl = Portc.5
Config I2cdelay = 10
'* * * ??????? ????????? ?? ???? ?????? ? ?????? ds1307
Const Ds1307w = &HD0 ' ??? ??????
Const Ds1307r = &HD1 ' ??? ??????


'* * * ПЕРЕМЕННЫЕ
Dim C As Byte
Dim Seco As Byte
Dim Mine As Byte
Dim Hour As Byte
Dim Day As Byte
Dim Dat As Byte
Dim Month As Byte
Dim Year As Byte
Dim S As String * 5 ' ?????????? ??? ?????? ? UART
Print " ds1307 clock"
' ПРЕДУСТАНОВКА
Seco = 5
Mine = 5
Hour = 10
Seco = Makebcd(seco)
Mine = Makebcd(mine)
Hour = Makebcd(hour)
I2cstart
I2cwbyte Ds1307w
I2cwbyte 0
I2cwbyte Seco
I2cwbyte Mine
I2cwbyte Hour
I2cstop
Print "Hello, world!"

Do
Waitms 200
Gosub Ds1307 '??????? ?? ???????????? ?????????? ??????? ? ????
Print Hour ; "/" ; Mine ; "/" ; Seco ; " " '??????? ?? ???????????? ??????????? ?? ???????
Loop

Ds1307:
I2cstart
I2cwbyte &HD0
I2cwbyte &H0
I2cstart
I2cwbyte &HD1
I2crbyte Seco , Ack ' ????? ???????
I2crbyte Mine , Ack ' ??????
I2crbyte Hour , Nack ' ????
I2cstop
Seco = Makedec(seco)
Mine = Makedec(mine)
Hour = Makedec(hour)
Return
1307 менял,кварц менял,ща голова наверно лопнет...
Реклама
Эиком - электронные компоненты и радиодетали
Radan
Мучитель микросхем
Сообщения: 465
Зарегистрирован: Ср июн 21, 2006 08:24:32
Откуда: Лисичанск
Контактная информация:

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

Сообщение Radan »

Может быть проблема в фус-битах. Посмотрите, делитель на 8 у вас точно отключен?
Реклама
Novice user
Мудрый кот
Сообщения: 1704
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

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

Сообщение Novice user »

плата arduino uno,там частота фиксирована 16 МГц,фузы правильные
попробую на другие порты перекинуть

это лишь небольшой кусок кода всей программы,именно он и выносит мозг,между тем SDA SCL работают корректно-на нем сидит тв тюнер и прекрасно работает(исходник выше-сильно укорочен,для лучшего понимания)

добавил-переключил так
Config Sda = Portb.4 '???????????? ?????? I2c
Config Scl = Portb.5
все прекрасно работает,а почему на Portc.4 и Portc.5 не работает???
точно счас голова лопнет :facepalm:
Реклама
Аватара пользователя
Tankor
Встал на лапы
Сообщения: 139
Зарегистрирован: Вт май 03, 2011 10:13:12
Откуда: Россия, Татарстан

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

Сообщение Tankor »

Novice user писал(а):плата arduino uno,там частота фиксирована 16 МГц,фузы правильные
попробую на другие порты перекинуть

это лишь небольшой кусок кода всей программы,именно он и выносит мозг,между тем SDA SCL работают корректно-на нем сидит тв тюнер и прекрасно работает(исходник выше-сильно укорочен,для лучшего понимания)

добавил-переключил так
Config Sda = Portb.4 '???????????? ?????? I2c
Config Scl = Portb.5
все прекрасно работает,а почему на Portc.4 и Portc.5 не работает???
точно счас голова лопнет :facepalm:
Я так делаю, всё работает (пример из проекта):
Config Sda = Portc.1
Config Scl = Portc.0
Config Twi = 400000
I2cinit
Waitms 5
Novice user
Мудрый кот
Сообщения: 1704
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

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

Сообщение Novice user »

так в том то и дело что если назначить другие порты то работает,а если именно Portc.4 и Portc.5 то не работает!!!придется переразать дорожки и назначать другие порты!Portc.4 и Portc.5 не для и2с(анекдот блин)
главное и пример часов из ардуино загружаю(там именно сда=.4 и сцл=с.5)-не работает!!!но должен!
пробовал моргать всем порт.с-прекрасно переключаются в ноль и 1
Radan
Мучитель микросхем
Сообщения: 465
Зарегистрирован: Ср июн 21, 2006 08:24:32
Откуда: Лисичанск
Контактная информация:

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

Сообщение Radan »

На этих пинах находится железный I2C.
Библиотека подключена?
$lib "i2c_twi.lbx" ' we do not use software emulated I2C but the TWI
Sergik07
Родился
Сообщения: 19
Зарегистрирован: Вт сен 10, 2013 18:12:58

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

Сообщение Sergik07 »

SCL SDA к питанию подтянуты?
Novice user
Мудрый кот
Сообщения: 1704
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

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

Сообщение Novice user »

Sergik07-читайте выше-все подтянуто
перекинул PORTC.4 на PORTC.3,PORTC.5 так и остался на месте= Scl,все работает как надо
просто удивляет что PORTC.4=Sda не работает как надо-при обращении к тюнеру KSH148 все отлично,а вот DS1307 не работает
всем спасибо!
у меня нет такой библиотеки :))
Аватара пользователя
Tankor
Встал на лапы
Сообщения: 139
Зарегистрирован: Вт май 03, 2011 10:13:12
Откуда: Россия, Татарстан

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

Сообщение Tankor »

Novice user писал(а):у меня нет такой библиотеки :))
Она есть в самом баскоме, необходимо только "подключить" в проекте её.
$lib "i2c_twi.lbx" 'Библиотека аппаратного I2C

Вот тут:http://bascomavr.3bb.ru/viewtopic.php?id=1326 очень хорошо в примере расписаны различные варианты.
Аватара пользователя
kip96
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

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

Сообщение kip96 »

Если пишите, что в протеусе всё работает, то осциллограф Вам в помощь.
А вообще заюзать отдельно только часы, больше ни чего.
Если у Вас ардуино, какую ножку перерезать?
У меня и на Меге 328, и на 48 и на 168 с библиотекой всё отлично работает, на тех же портах.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Novice user
Мудрый кот
Сообщения: 1704
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

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

Сообщение Novice user »

там кроме часов много чего(память м328 забита на 78%),перерезал дорожку,вопрос закрыт!
Аватара пользователя
Tankor
Встал на лапы
Сообщения: 139
Зарегистрирован: Вт май 03, 2011 10:13:12
Откуда: Россия, Татарстан

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

Сообщение Tankor »

Novice user писал(а):память м328 забита на 78%
Там ещё столько можно наворотить при таком остатке... :)))
Аватара пользователя
serg_svd
Собутыльник Кота
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

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

Сообщение serg_svd »

Radan писал(а):На этих пинах находится железный I2C.
Библиотека подключена?
$lib "i2c_twi.lbx" ' we do not use software emulated I2C but the TWI
У меня работало на этих портах без проблем и без указанной библиотеки
Спойлер'configure the scl and sda pins
Config I2cdelay = 5
Config Sda = Portc.4
Config Scl = Portc.5
Интересно глянуть что там за библиотека. А то я как-то без нее обходился :)
Хотя стараюсь все-же кидать периферию на предназначенные ей места. SDA, SCL для I2C, кнопки на внешние прерывания, даже если их не использую.
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
almon71
Родился
Сообщения: 1
Зарегистрирован: Чт фев 04, 2016 13:39:21

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

Сообщение almon71 »

Всем Здравствуйте!
За два месяца (нога в гипсе) прочитал всю тему с переходами по ссылкам, но вопросы остались. Хочу переделать управление объективом "микроскопа", сейчас ручное -на ШД и регулируемых стабилизаторах.
Block Lens (объектив) на борту имеет:
1 - ШД "Zoom" - проверил в Proteus, упр. энкодером, код не мой, я только сделал из шага полушаг и пару строк добавил чтоб не дергался при включении.
2 - ШД - "Shutter" - Вот вопрос первый, Ему надо на отк./закр. 120 шагов, и отработать всего два раза - держим 3-5 сек. кнопку (не энкодера, она занята входом и выбором в "MENU") проснулся МК, открыл затвор и дал питание на камеру, и обратно по выключению. Есть на затворе 2 концевика, но у меня не получилось и шаг сделать без энкодера. Как сделать?
3 - тоже ШД, но обмотки параллельно и умеют делать только один шаг на 90'(защелки) - это два фильтра "T*" и "Gr", тут вроде понятно, тем же энкодером перебираем 4 варианта 1,1+2,2,Off. осталось только прикрутить к меню.
4 - А теперь самое интересное и пожалуй ГЛАВНЫЙ ВОПРОС: Привод линзы "Focus". Дело в том, что это не мотор, это больше похоже на стрелочный мА, только без возвратной пружинки, т.е. где встал там и стоит или куда наклонишь туда и линза поехала, ему чтоб двигаться надо очень плавно от -1,50 до +1,50 вольт, понимаю, что тут поможет только DAC, что то типа TLC7528, но как реализовать, и чтоб МК после настройки через меню помнил держал позицию линзы, да и все настройки тоже?
Спасибо.
P.S. Из МК есть Atmega 103, 128. 8515. LCD - 16x1, 16x2 и целая гора всяких телефонных.
Вложения
DSCF4231.JPG
(231.96 КБ) 298 скачиваний
Hot
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Пн май 25, 2015 21:29:15
Откуда: Владимир

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

Сообщение Hot »

всем привет

в програмировании делаю первые шаг. Покопался - не нашёл...элементарый вопрос : имеется переменная,двоично-десятичная.Как её послать в порт? Есть только 4 ноги одного порта.
Novice user
Мудрый кот
Сообщения: 1704
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

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

Сообщение Novice user »

я делал так(надо было для частотомера,чтоб при необходимости сегменты индикаторов можно было легко переназначать)
dim n as byte-переменная
config portb=otput-порт
n=5-тут понятно,5=(bin)00001001
portb.0=n.0 1
portb.1=n.1 0
portb.2=n.2 0
portb.3=n.3 1
koteika
Встал на лапы
Сообщения: 147
Зарегистрирован: Пт ноя 27, 2009 18:24:25
Откуда: Харьков
Контактная информация:

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

Сообщение koteika »

Здравствуйте товарищи :beer: у меня есть пару вопросов по режиму энергосбережения Idle:
из периферии у меня включены только таймер и внешние прерывания, для наименьшего потребления мне необходимо перед уходом в idle отключить таймер и нужно-ли отключать остальные плюшки типа АЦП, компаратор и т.д.? контроллер мега8
Ответить

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