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

Обсуждаем контроллеры компании Atmel.
Shuriko
Прорезались зубы
Сообщения: 245
Зарегистрирован: Вт фев 17, 2009 10:52:38
Откуда: Kiev

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

Сообщение Shuriko »

dhouse писал(а):Вопрос по оператору $crystal в BASCOM. Написал свою программу часов для Attiny2313 без кварца. Во фьюзах отключил деление частоты на 8 (внутренняя частота вышла 8 MGz). Переполнение таймера выставил именно на эту частоту. Но если в программе ставлю $crystal=8000000, то при динамической индикации четко заметно мигание индикаторов. При установке меньшей величины, вплоть до $crystal=1000000 мигание совершенно не заметно. При этом на ход часов этот параметр не повлиял. Так что же делает оператор $crystal?

Просто сообщает компилятору на какой частоте будет работать МК, а сама частота задаётся кварцем либо фьюзами.
А изменения у Вас происходят потому что компилятор исходя из указаной частоты пересчитывает временнЫе задержки.
dhouse
Встал на лапы
Сообщения: 84
Зарегистрирован: Пт апр 16, 2010 12:30:03

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

Сообщение dhouse »

Спасибо Shuriko. Тогда получается, что можно заставить контроллер работать быстрее, указывая компилятору более низкую частоту (в разумных пределах)?
dhouse
Встал на лапы
Сообщения: 84
Зарегистрирован: Пт апр 16, 2010 12:30:03

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

Сообщение dhouse »

Небольшие эксперименты показали, что оператор $crystal влияет на длительность выполнения операторов Wait и Waitms. Видимо, величины задержек пересчитываются через этот оператор.
Shuriko
Прорезались зубы
Сообщения: 245
Зарегистрирован: Вт фев 17, 2009 10:52:38
Откуда: Kiev

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

Сообщение Shuriko »

dhouse писал(а):Небольшие эксперименты показали, что оператор $crystal влияет на длительность выполнения операторов Wait и Waitms. Видимо, величины задержек пересчитываются через этот оператор.

Так я ж это и написал. Если Вы через оператор waitms 1 указали задержку в 1 сек, то при частоте 8 МГц это будет одно количество пустых циклов (примерно чуть меньше 8 млн раз), а если Вы через оператор crystal укажите что МК работает на 4 МГц, то компилятор пересчитает, что пустых циклов должно быть около 4 млн и в реале у Вас задержка выйдет в два раза меньше по времени если МК работает на частоте 8 МГц.
Процессор от этого работает ни быстрее ни медленнее, а вот временные задержки искажаются. Указывайте только реальную частоту - иначе потом будете долго думать от чего баги ловите.
dhouse
Встал на лапы
Сообщения: 84
Зарегистрирован: Пт апр 16, 2010 12:30:03

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

Сообщение dhouse »

Да, кажется я немного перемудрил. В динамической индикации я использовал задержку 10 мс на знак. На 4-х - это уже 40 мс. Частота мигания: 1000/40=25 герц. Видимо, нужно просто понизить задержку или привязаться к таймеру.
Shuriko
Прорезались зубы
Сообщения: 245
Зарегистрирован: Вт фев 17, 2009 10:52:38
Откуда: Kiev

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

Сообщение Shuriko »

dhouse писал(а):Да, кажется я немного перемудрил. В динамической индикации я использовал задержку 10 мс на знак. На 4-х - это уже 40 мс. Частота мигания: 1000/40=25 герц. Видимо, нужно просто понизить задержку или привязаться к таймеру.

Для начала правильно указать частоту.
А задержка между чем и чем в динамической индикации? Не путаете со временем свечения?
dhouse
Встал на лапы
Сообщения: 84
Зарегистрирован: Пт апр 16, 2010 12:30:03

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

Сообщение dhouse »

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

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

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

коты , а кто и главное как делал корекцию часов и минут на ds1307 ?
Я например сделал вот так.
Incr _hour
If _hour > 23 Then _hour = 0
Gosub Settime
Waitms 100
Gosub Getdatetime
Но чегото не хотит толком работать один раз после сброса мк срабатывает норм. а потом хоть убейся ни какой реакции.
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

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

Сообщение max50 »

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

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

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

max50 , спасибо кое-что прояснилось. Девайс стал нормально реагировать на пульт. Минуты , часы устанавливаются и запоминаются но правда криво :oops: . Например часы нормально инкриминиуются только до 15 дальше с 10 до 17 тенденция правильная (24 часа) но вот к примеру 19 часов не выставить :? . Вот ещё что хотел спросить: на какие ноги тини 2313 цеплять sda и scl есть какая-нибудь разница ? у меня так определены Config Sda = Portb.5 , Config Scl = Portb.6
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

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

Сообщение max50 »

dimon-790 писал(а):Вот ещё что хотел спросить: на какие ноги тини 2313 цеплять sda и scl есть какая-нибудь разница ? у меня так определены Config Sda = Portb.5 , Config Scl = Portb.6
Разницы в принципе нет, так как мы сами указываем Sda и Scl.
dimon-790 писал(а):Например часы нормально инкриминиуются только до 15 дальше с 10 до 17 тенденция правильная (24 часа) но вот к примеру 19 часов не выставить :? .
Без кода сложно сказать.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Аватара пользователя
dimon-790
Мучитель микросхем
Сообщения: 442
Зарегистрирован: Пт авг 29, 2008 09:22:37
Контактная информация:

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

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

вот полный исходник , правда прокомментирован по минимуму :oops:
Вложения
time&termom.rar
(1.84 КБ) 470 скачиваний
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

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

Сообщение max50 »

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

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

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

max50,спасибо попробовал так индикации или нет совсем или пару раз пробежит по разрядам и замирает.
P.S. таки завелось !!! разремил этот кусок
If Pind.2 = 0 Then
'Getrc5(addres , Command)
'If Addres = 0 Then
'Command = Command And &B01111111
Gosub Rc5
Gosub Setup
End If и всё стало почти как надо, выставляется нормально а часы стоят :)
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

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

Сообщение max50 »

Попробуй это:

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

Do
If Pind.2 = 0 Then
'Getrc5(addres , Command)
'If Addres = 0 Then
'Command = Command And &B01111111
Gosub Rc5
Gosub Setup
Gosub Getdatetime
End If
End If


dimon-790 писал(а):упс , я за тобой не успеваю :music: :)

Это я за тобой не успеваю.
Последний раз редактировалось max50 Чт апр 22, 2010 23:27:07, всего редактировалось 1 раз.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Аватара пользователя
dimon-790
Мучитель микросхем
Сообщения: 442
Зарегистрирован: Пт авг 29, 2008 09:22:37
Контактная информация:

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

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

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

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

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

блин походу ds-ку подпалил всё выставляется запоминается а время не тикает. Прогу вроде всю перелопатил косяков больше не нашол библиотеки открывал закрывал ни какой разницы.А подпалил походу сам опорник тинька не хотела шиться пока незакоротиш ножки х-тал на дс-ке.Вот видать и докоротился :? ну да ладно завтра поменяю отпишусь что и как ещё раз большое тебе спасибо мах50. :beer:
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

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

Сообщение max50 »

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

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

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

регистр зовётся 74нс164 , поменял дс-ку , те-же "яйца". Полез опять в прогу уже и не помню че менял но всё-таки победил я её :))) вот исправленная пока косяков в работе не заметил
Вложения
time&termom.rar
(2.07 КБ) 461 скачивание
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
Аватара пользователя
dimon-790
Мучитель микросхем
Сообщения: 442
Зарегистрирован: Пт авг 29, 2008 09:22:37
Контактная информация:

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

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

собрал всё до кучи вроде не плохо получилось... :) не смог удержаться чтоб не похвастаться
Вложения
el_tablo.rar
(255.69 КБ) 626 скачиваний
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
Ответить

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