Страница 244 из 304

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

Добавлено: Чт янв 28, 2016 02:58:30
Аlex
Да да, я понял :) Пост свой поправлял, а Вы уже ответили :)
Плюсую...

Тут Вы используете прерывание, чтобы сменить оставшееся время задержки. Но ведь можно это делать и внутри цикла, не правда ли ?
Мозговая атака продолжается... :)))
8 кнопок и 8 светиков. Для каждого из них делаем такую задержку, но независимо друг от друга. Т.е. пока один любой канал работает, другой любой может включаться/отключаться в любое время.

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

Добавлено: Чт янв 28, 2016 04:56:23
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

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

Добавлено: Сб янв 30, 2016 07:55:28
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 раза-все то же

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

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

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

Добавлено: Ср фев 03, 2016 19:46:12
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 менял,кварц менял,ща голова наверно лопнет...

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

Добавлено: Ср фев 03, 2016 20:56:24
Radan
Может быть проблема в фус-битах. Посмотрите, делитель на 8 у вас точно отключен?

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

Добавлено: Ср фев 03, 2016 21:08:59
Novice user
плата arduino uno,там частота фиксирована 16 МГц,фузы правильные
попробую на другие порты перекинуть

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

добавил-переключил так
Config Sda = Portb.4 '???????????? ?????? I2c
Config Scl = Portb.5
все прекрасно работает,а почему на Portc.4 и Portc.5 не работает???
точно счас голова лопнет :facepalm:

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

Добавлено: Чт фев 04, 2016 04:22:32
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

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

Добавлено: Чт фев 04, 2016 08:59:28
Novice user
так в том то и дело что если назначить другие порты то работает,а если именно Portc.4 и Portc.5 то не работает!!!придется переразать дорожки и назначать другие порты!Portc.4 и Portc.5 не для и2с(анекдот блин)
главное и пример часов из ардуино загружаю(там именно сда=.4 и сцл=с.5)-не работает!!!но должен!
пробовал моргать всем порт.с-прекрасно переключаются в ноль и 1

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

Добавлено: Чт фев 04, 2016 09:14:14
Radan
На этих пинах находится железный I2C.
Библиотека подключена?
$lib "i2c_twi.lbx" ' we do not use software emulated I2C but the TWI

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

Добавлено: Чт фев 04, 2016 11:48:32
Sergik07
SCL SDA к питанию подтянуты?

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

Добавлено: Чт фев 04, 2016 13:52:12
Novice user
Sergik07-читайте выше-все подтянуто
перекинул PORTC.4 на PORTC.3,PORTC.5 так и остался на месте= Scl,все работает как надо
просто удивляет что PORTC.4=Sda не работает как надо-при обращении к тюнеру KSH148 все отлично,а вот DS1307 не работает
всем спасибо!
у меня нет такой библиотеки :))

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

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

Вот тут:http://bascomavr.3bb.ru/viewtopic.php?id=1326 очень хорошо в примере расписаны различные варианты.

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

Добавлено: Чт фев 04, 2016 15:21:17
kip96
Если пишите, что в протеусе всё работает, то осциллограф Вам в помощь.
А вообще заюзать отдельно только часы, больше ни чего.
Если у Вас ардуино, какую ножку перерезать?
У меня и на Меге 328, и на 48 и на 168 с библиотекой всё отлично работает, на тех же портах.

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

Добавлено: Чт фев 04, 2016 16:23:37
Novice user
там кроме часов много чего(память м328 забита на 78%),перерезал дорожку,вопрос закрыт!

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

Добавлено: Чт фев 04, 2016 16:59:33
Tankor
Novice user писал(а):память м328 забита на 78%
Там ещё столько можно наворотить при таком остатке... :)))

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

Добавлено: Чт фев 04, 2016 18:06:50
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, кнопки на внешние прерывания, даже если их не использую.

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

Добавлено: Пт фев 05, 2016 13:04:37
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 и целая гора всяких телефонных.

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

Добавлено: Пт фев 05, 2016 19:39:52
Hot
всем привет

в програмировании делаю первые шаг. Покопался - не нашёл...элементарый вопрос : имеется переменная,двоично-десятичная.Как её послать в порт? Есть только 4 ноги одного порта.

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

Добавлено: Сб фев 06, 2016 14:05:05
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

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

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