Страница 275 из 304
Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт июл 06, 2017 20:38:37
Ivanoff-iv
я зашел, думал тут АСМ, а тут БАСМ,

посмотри как таймер настроен на 272 стр. этого же форума 5е сообщение снизу (от КОТика) сразу под заголовком "настройка шим" настраивется таймер (правда 0й) попробуй по аналогии
Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт июл 06, 2017 20:49:34
edm2007
Как пример, для AT2313:
Код: Выделить всё
Config Timer1 = Timer , Prescale = 256 , Clear Timer = 1 ' 1/8000000 = 0,125мкс * 256 * 31250 = 1 cек
Compare1a = &H7A12 ' конфигурация регистра сравнения, для отсчета 1 секунды
On Oc1a 1_sec ' вектор прерывания совпадения Т1
Enable Interrupts ' разрешаем прерывания
Enable Oc1a ' по совпадению в том числе
'-----------------------------------------------------------------------------------------------------------
Do
Loop
'-----------------------------------------------------------------------------------------------------------
1_sec: ' обработка прерывания отсчета 1 секунды
...
Return
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт июл 07, 2017 07:15:02
Gordon Shumway
[uquote="OLEGKARAS",url="/forum/viewtopic.php?p=3140129#p3140129"]Как настроить прерывание по таймеру чтобы счетчик считал секунды ? Камень ATMEGA32 , внутренний кварц 8 МГц.[/uquote]
Зачем же такие сложности творить ? В Баскоме на эту тему уже за нас все придумали. Называется Асинхронный режим работы таймера.
Достаточно двух строк
и кварца 32768гц (часовой) на ногах TOSC, и у вас готовые секунды в реальном времени, причем отсчет не зависит от самой программы.
После этих строк у вас появляются автоматически сконфигугрированными переменные _sec, _min, _hour, и автоматом начинает считаться время.
Если вам нужны только секунды, то используете только _sec (именно так, с подчеркиванием).
То есть ваша основная программа работает на вашей внутренней частоте 8мгц, а таймер, считающий секунды, от кварца 32768.
Пример:
Код: Выделить всё
$regfile = "m32def.dat"
$crystal = 8000000
config clock = soft
enable interrupts
do
'ваша программа с анализом переменной _sec
'что-то типа
if _sec = 0 then моргнуть светодиодом
loop
Дополнительно ничего под этот режим конфигурировать не нужно, в Баскоме уже все за нас сделали.
Отмечу, что с этим асинхронным режимом отлично работает режим сна
powersave. В это режиме мк просыпается раз в секунду чтобы прибавить ее и снова засыпает.
Пример:
Код: Выделить всё
$regfile = "m32def.dat"
$crystal = 8000000
config clock = soft
enable interrupts
do
'ваша программа с анализом переменной _sec
'что-то типа
if _sec = 0 then моргнуть светодиодом
powersave
loop
Как-то так...

Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт июл 07, 2017 07:24:42
IDok
Gordon Shumway а эти переменные считаются как? ну т.е. sec идет от 1 до 60 потом прибавляется min (от 1 до 60) и так по кругу?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт июл 07, 2017 07:30:46
Gordon Shumway
[uquote="IDok",url="/forum/viewtopic.php?p=3140331#p3140331"]Gordon Shumway а эти переменные считаются как?[/uquote]
Как в часах, ничего проверять не нужно. То есть изначально все по нулям, секунды до 59 - прибавляется минута, секунды в ноль. Минуты до 59 - прибавляется час, минуты в ноль.
23:59:59 - 00:00:00
Проверять эти переменные нужно только когда вы вручную задаете их, например, в самодельных часах. Нажата кнопка - секунды увеличиваются. И тут нужно вставить проверку чтобы больше 59 не увеличились.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт июл 07, 2017 09:01:16
edm2007
Ну как настраивать таймер тоже знать нужно. Например, в AT2313 нет асинхронного режима у таймеров.

Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт июл 07, 2017 09:13:02
Gordon Shumway
[uquote="edm2007",url="/forum/viewtopic.php?p=3140371#p3140371"]Ну как настраивать таймер тоже знать нужно. Например, в AT2313 нет асинхронного режима у таймеров.

[/uquote]
Ну, это да ! Ваше решение как всегда просто, лаконично, универсально, и обычно сразу работает.
У автора вопроса вроде Мега32 была, там есть этот режим, а я как раз на эту же тему развлекаюсь в данный момент.

Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт июл 07, 2017 11:29:44
edm2007
Gordon Shumway писал(а):а я как раз на эту же тему развлекаюсь в данный момент
А, это без вопросов тогда.

Асинхронный таймер - шикарная штука, согласен. Да еще и в баскоме реализованы хардварно все эти переменные. Самое оно для начинающего.

Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт июл 07, 2017 14:12:32
Gordon Shumway
[uquote="edm2007",url="/forum/viewtopic.php?p=3140483#p3140483"]Асинхронный таймер - шикарная штука, согласен. Да еще и в баскоме реализованы хардварно все эти переменные.[/uquote]
А еще независимость от основной программы: что бы там не делалось в основной программе или в основном цикле - секунда щелкнет всегда и вовремя. Да и Powersave радует - обычные таймерные прерывания только из Idle могут разбудить мк, а в Idle мк кушает сильно больше. У меня получилось в Powersave сделать ток 0,025мА. И в асинхронном режиме таймер отлично "щелкает".
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт июл 07, 2017 14:22:52
edm2007
Да, в режиме powersave можно разбудиться только асинхронно. И выбор невелик - асинхронный таймер, прерывание по низкому уровню, сторожевой пес да хард ресет. И в этом плане асинхронный таймер это просто находка, уснуть и просыпаться раз в секунду на батарейном питании - дорогого стоит. Это здорово экономит батарейные ресурсы.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пт июл 07, 2017 14:36:05
Gordon Shumway
[uquote="edm2007",url="/forum/viewtopic.php?p=3140559#p3140559"]И в этом плане асинхронный таймер это просто находка, уснуть и просыпаться раз в секунду на батарейном питании - дорогого стоит. Это здорово экономит батарейные ресурсы.[/uquote]
Это точно ! У меня сейчас проходит обкатку "Мегатермо-3", сделал именно на асинхроне. 0,15мА, но там же еще и дисплей, который показывает даже во сне. И там я еще дальше пошел в плане сбережения питания. 0,15мА для CR2032 в круглосуточном девайсе - это все-таки многовато. Но значительно лучше, чем было в двух первых Мегатермо.
Испытания пройдут - выложу. Тут уже просто интересно было чего можно достичь c хитрым питанием.

Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср июл 12, 2017 12:13:08
OLEGKARAS
Добрый день.
Вот исходник взятый из интернета, в нем уже используется память EEPROM , как мне в этом исходнике использовать память для записи еще своих уставок ?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср июл 12, 2017 14:05:21
vem566
Берете и дописываете свои уставки. Свободная EEPROM еще есть.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср июл 12, 2017 14:22:37
OLEGKARAS
Вот посмотрите , файл 12202_32 , в нем строчка 123 чтение из памяти , 561 запись в память , но почему то в эту ячейку или не записывается или не читается , хотя если эти строки поместить в новый файл все пишется и читается.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср июл 12, 2017 15:04:43
vem566
Если я не пропустил, то описание переменных в EEPROM начинаются с 61 строки. Все переменные в этой строке занимают 11 байт, с 0 по 10. Следующая переменная EEPROM I_set, в строке 65 типа Word и занимает 2 байта с 11 по 12-ый.
В строке 123 считывается значение в переменную U_min не из 11-ой ячейки, а с 11-го байта. Длина её тоже 2 байта, как и у переменной I_set. Так что считывается как раз I_set в переменную U_min.
Не проще считывать имя переменной из памяти, а не мучиться с адресами? Для работы с прямой адресацией памяти нужен опыт и отличное понимание что, где и в какой момент работы программы находится в памяти.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср июл 12, 2017 17:06:49
OLEGKARAS
Как все сложно в этом баском , если считывать имя переменной из памяти проще то покажите как это делается , мне лично все равно каким образом работать с памятью , главное что бы это было по проще и работало.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср июл 12, 2017 17:09:14
edm2007
OLEGKARAS писал(а):Как все сложно в этом баском
Так пишите на том, на чем проще. Делов-то. Конечно сложно, тут Вам не Ассемблер какой-нибудь, тут бейсик знать нужно.

Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср июл 12, 2017 17:11:16
OLEGKARAS
Дело в том что исходник этот уже написан в баском , а на том чем проще я такое не напишу.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср июл 12, 2017 17:34:20
vem566
Напишите в строчке 67
Dim U_min_e As Eram Word
И пользуйтесь переменной в памяти с именем U_min_e. Или свое имя придумайте.
Тогда в строке 123 будет
U_min = U_min_e
И все дела.
Но думаю, что раз у Вас такие трудности, то заполнение переменной U_min_e тоже вызовет проблемы.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср июл 12, 2017 18:03:22
OLEGKARAS
Выдает ошибку 253.