Обсуждаем контроллеры компании Atmel.
Ответить

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

Вс ноя 25, 2018 09:36:31

Попробуйте записать и запустить нижеследующую программу
Код:
; Turn off global interrupt
   cli
; Reset Watchdog Timer
   wdr

   CLR   R16
   OUT   MCUSR,R16

   LDI   R16,1<<WDCE|1<<WDE
   OUT   WDTCR, r16

   CBR   R16,1<<WDE
   OUT   WDTCR,R16

   RJMP   PC
;*************************
.EXIT

Или просто внедрить её в Ваш код.

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

Вс ноя 25, 2018 11:43:20

Похоже, дело в МК. Попробовал делать выход на порты PB.0 b PB.1 - вообще нет реакции светодиода. А т.к. другого МК под рукой не оказалось, то придется подождать 2-3- дня, пока съезжу в магазин. Главное, что, как все говорят, в коде ошибок нет, значит должен работать.

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

Вс ноя 25, 2018 14:53:21

В свете открывшихся с выходом версии 2.0.8.1 перспектив(последний пост страницы 285), а так же в связи с приближающимися новогодними праздниками, предлагаю перевод справки по использованию RAINBOW. Может кому и поможет.
Вложения
Rainbow_2081.pdf
(124.69 KiB) Скачиваний: 626

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

Вт ноя 27, 2018 16:40:41

Прошу помочь победить маленький кусочек

Похоже, среда игнорирует баг с End If

Config Pinb.3 = Input
Config Pinb.4 = Input
Config Portb.2 = Output

Gerkon Alias Pinb.3
Pusk Alias Pinb.4
Rele Alias Portb.2

Do
If Pusk = 0 Then : Set Rele : End If
If Pusk = 1 Then
If Gerkon = 0 Then : Reset Rele : End If
End If
Loop


----------
Почему то не хочет по некоторым именам к битам регистров обращаться.
$regfile = "m32def.dat"
$crystal = 8000000
$hwstack = 80
$swstack = 95
$framesize = 100

Tccr1a.com1a1 = 1
Tccr1a.com1b1 = 1
Tccr1a.com1a0 = 1
Tccr1a.com1b0 = 1
Tccr1b.ctc1 = 1
Tccr1a.pwm11 = 0
Tccr1a.pwm10 = 1
Tccr1b.wgm13=0 'не жрёт

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

Пт ноя 30, 2018 09:41:31

Это не баг. Допускается как

If a > b then c = 0

так и

if a > b then
c = 0
end if

То есть одиночный оператор после if может не заканчиваться end if, если написан в одну строку.

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

Вт дек 04, 2018 21:57:42

Спасибо. Работает такая запись. Но у меня однажды была ошибка, при которой несанкционированно выполнялся кусок кода до ближайшего end if, а если его заремарить, то устройство буквально сходило с ума, выполнялись совершенно произвольные куски кода, при этом работали прерывания и динамическая индикация. Компилятор никаких ошибок не выдавал. :(
По поводу timer1. Если посмотреть файл m32def.dat, то там четвертый бит регистра TCCR1B назван не WGM13, а CTC11. Запись Tccr1b.CTC11 = 0 - корректна.

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

Ср дек 05, 2018 19:18:51

Итоги моих опытов. Купил новый МК, взял другой программатор, вместо монтажной платы собрал схему на картонке с помощью пайки. Результат - ноль. Проверил в Протеусе - все работает, как и замышлялось. В железе пока не хочет. Последний подход к инструменту - спаял схему на печ.плате с использованием МК в корпусе SO-8. Схема вроде подала признаки жизни, но ведет себя непонятно как. Но разбираться с ней уже нет времени, т.к. убываю на месяц в командировку. Так что придется пока отложить её до лучших времен.Но эта схемка мне нужна, так что потом буду её добивать.

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

Ср дек 05, 2018 20:42:41

Может у Вас просто контакт в тумблере пропадает? Тогда условие
If Pusk = 0 Then Set Rele
не выполняется, и светодиод тухнет.

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

Чт дек 06, 2018 13:23:27

rojnov, я лично пробовал Ваш код в железе. Все работает как положено, могу видео записать. :) Попробуйте сменить версию ПО. Я давно не кодю в Баскоме, потому компилировал в старенькой 1.11.9.8. :solder:

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

Чт дек 13, 2018 13:37:01

Привет всем)
Есть контроллер atmega8
В баскоме прописываю тактовую частоту 4000000
Во фьюзах выставлена тактовая частота 4 мГц с задержкой 64

Пишу команду wait 1
Но задержка больше чем секунда - это видно даже по банальному включению светодиода.
В чем может быть проблема?
Спасибо

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

Чт дек 13, 2018 14:21:38

Доброго времени.

Внутренний генератор конечно штука не точная, а задержки типа wait еще хуже, но больше - это сколько? В два раза? В десять? Можно скрин фьюзов? И код.

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

Пт дек 14, 2018 10:43:02

$regfile = "m8def.dat"
$crystal = 4000000
$framesize = 128
$hwstack = 40
$swstack = 40
Config Portb.1 = Output

Portb.1 = 0
Do
wait 1
Portb.1 = 1
Wait 1
Portb.1 = 0
Loop
End

Где жуткие уходы от 1 секунды?
Без кода и фузов сюдой не лезь.

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

Пт дек 14, 2018 13:18:16

А фузы только выставлены, или еще и записаны в МК? Или может там вместо 4 стоит 2 или вовсе 1 МГц.

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

Сб дек 15, 2018 00:53:14

CKDIV8. При включенном бите , тактовая частота делится на 8.

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

Сб дек 15, 2018 00:58:39

Microtech, Конкретно в 8-й Меге этого фьюза нет.

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

Сб дек 15, 2018 13:57:30

Да, ошибся. :oops:
Там CKSEL2 похожий бит. В любом случае, надо проверить правильность установки локфьюзов.

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

Сб дек 29, 2018 11:02:42

Приветствую всех и с наступающим Н.Г.
Маленький вопрос. Подключаю ЖК-индикатор 2*16, стандартный. Делаю конфигурацию по образцу:
Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0
Config Lcd = 16 * 2
Вопрос: надо ли отдельно конфигурировать эти же порты на выход, типа "Config Portd.3 = Output" или

достаточно сконфигурировать только ЖКИ?

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

Сб дек 29, 2018 12:18:05

rojnov писал(а):достаточно сконфигурировать только ЖКИ?

Вполне достаточно!

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

Сб дек 29, 2018 12:27:28

Спасибо!

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

Вт янв 01, 2019 22:17:42

Всех с 2019! Тут собственно возник вопрос как работает рандом в AVR и bascom? Что он он совсем не рандомный это я знаю но вот на сколько он не рандомный относительно других мк?
Мне нужен рандом для составления списка устройств автоматической/прозрачной адресации. Разные устройства находятся на разных системах на 2.4ГГ, на 430, и даже ИК. Что бы всем не пытаться связаться с устройством которого нет сам трансивер составляет список и услышав ИД из списка связывается и устройством. Трансивер запрашивает идентификатор и устройства его передают, но вот тут в дело вступает рандом, передача идет через случайной промежуток времени рассчитывая на то что пакет от какого то устройства пройдёт этим устройствам скажет молчать и снова запросит ИД и так пока все не замолчат если все будут рандомить по одинаковому то не чего не пройдёт. То есть в одно время получат запрос и можно сделать при таком глупом рандоме что бы все девайсы генерили разное время передачи?
Вообще это фундаментальная проблема составления списка как запросить ИД у устройств и что бы они не мешали друг другу. То есть трансивер сам сам составляет список устройств и сервер не говорит трансиверу какие адреса работают через него и не обращается к устройству через какой то трнансивер, это и есть автоматический режим.
Ответить