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

Обсуждаем контроллеры компании Atmel.
Ответить
Мучитель микросхем
Аватара пользователя
Сообщения: 442
Зарегистрирован: Пт авг 29, 2008 09:22:37

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

Напруга отслеживается по adc.6 . Переназначить можно на любой свободный ацп . По остальным ногам не скажу лень весь исходник переваривать , давай схему может придумаем чтонить .
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
Контактная информация:
Реклама
Родился
Сообщения: 8
Зарегистрирован: Чт сен 29, 2011 12:50:01

Сообщение zx-tv »

проблему решил так код: сonfig Adc = Single , Prescaler = Auto , Reference = AVCC
всем спасибо.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3443
Зарегистрирован: Вт июн 28, 2011 12:11:50
Откуда: Россия,Ставропольский край, ст.Бекешевская

Сообщение rus084 »

как перевести порт вывода в Z-состояние?
переназначить на вход и все?
а как узнать назначен ли порт или нет?
Меня зовут Димон .
Изображение
Изображение
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 4744
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

Сообщение vem566 »

Привет всем.
Есть проект. атмега8, часы DS1307, будильник, два DS18B20 на разных входах.
Проблема: если размер стека по умолчанию (32), при чтении первого датчика температуры протеус сходит с ума (на индикаторе 00.0 и самопроизвольный переход в настройки времени. В железе так же, только перехода в настройки нет.
Если размер стека увеличить до 40, в протеусе все нормально, но после прошивки атмега не запускается вовсе. Баском говорит, что 47% ресурсов занято. И что это за хрень? Как это побеждать?
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3443
Зарегистрирован: Вт июн 28, 2011 12:11:50
Откуда: Россия,Ставропольский край, ст.Бекешевская

Сообщение rus084 »

Изображение
вот так хочу сделать .

получается чтото типа
if getadc(1) > 511 or getadc(3)< 480 then
config portb.4 = output
if getadc(1) > 511 and getadc(3)< 480 then
if portb.4=0 then
portb.4=1
else
portb.4=0
endif
else
if getadc(1)>511 then
portb.4=0
else
if getadc(3)<480 then
portb.4=1
end if
endif
else
config portb.4=input
end if

правильно?
Меня зовут Димон .
Изображение
Изображение
Контактная информация:
Реклама
Держит паяльник хвостом
Аватара пользователя
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

Сообщение kip96 »

это что-ж за извращения такие, что в такой простой задаче стенка в меге 8 на часы не хватает? С таким же успехом задам вопрос -
" я еду по асфальту в лыжи обутый, чи лыжу не едут, чи я .....й"
В смысле, без кода, помочь только диагнозом, либо к экстросенсам. Без обид.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 398
Зарегистрирован: Чт мар 26, 2009 20:53:27
Откуда: Беларусь.Минская обл.

Сообщение Dnepr_1186 »

Парни подкскажите. Написал прошивку тахомтера. Но как сделать чтобы обороты округлялись? С точностью 50об\мин. Чтобы поазвало не 2323об а 2300? Файлы пректа и протеуса прилагаю
Вложения
tahometr.rar
(28.55 КБ) 156 скачиваний
Опытный кот
Аватара пользователя
Сообщения: 725
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

Сообщение amv2000 »

Dnepr_1186 писал(а):как сделать чтобы обороты округлялись?
Есть команда в Bascom

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

Fusing Форматирует переменную типа Single согласно формату строки, при необходимости выполняет округление.

 Dim Xval as Single
 Dim Pstring as String*4
 Xval = 16.379
 Pstring = Fusing(Xval, "format")
 Pstring = "16.4"
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Сообщение pavel1979 »

раздели на 50 а потом умножь
F=F/50
F=F*50
Собутыльник Кота
Аватара пользователя
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Сообщение serg_svd »

pavel1979 писал(а):раздели на 50 а потом умножь
F=F/50
F=F*50
Самый простой способ, но даст ошибку при целочисленном делении как раз на эти самые 50 (оборотов), когда число оборотов будет в диапазоне хх01...хх49.
Но зато меньше мельтишение цифр будет.
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 398
Зарегистрирован: Чт мар 26, 2009 20:53:27
Откуда: Беларусь.Минская обл.

Сообщение Dnepr_1186 »

вот как раз таки от мельтешения и надо было избавится. Проверил, все работает. Спасибо!
Друг Кота
Аватара пользователя
Сообщения: 4744
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

Сообщение vem566 »

kip96, обид нет. Вопрос был наверное не корректно сформулирован. Интересовала особенность работы со стеком в баскоме. Разобрался сам. Оказалось, что ничего особенного нет. Просто компилятор не проверяет использование стека. Дальше все стало проще. Обычная не корректная рекурсия. Типичная ошибка при извращениях в алгоритмах.
Встал на лапы
Сообщения: 147
Зарегистрирован: Пт ноя 27, 2009 18:24:25
Откуда: Харьков

Сообщение koteika »

Уважаемые гуру и не очень :) подскажите, какой командой в Baskom arv можно инвертировать значение на лапке контроллера? :beer:
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск

Сообщение edm2007 »

Toggle.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Контактная информация:
Встал на лапы
Сообщения: 147
Зарегистрирован: Пт ноя 27, 2009 18:24:25
Откуда: Харьков

Сообщение koteika »

респект :beer: лови плюс :))
Контактная информация:
Родился
Сообщения: 3
Зарегистрирован: Чт янв 09, 2014 19:29:08

Сообщение 1kostik1976 »

Привет всем. Начинаю осваивать баском и.... Проблема вот в чем. Есть тини 461 и такая прога :)
$regfile = "attiny461.dat"
$crystal = 4000000
Config Portb.2 = Output
Do
Portb.2 = 1
Waitms 2
Portb.2 = 0
Waitms 2
Loop
End
В тиньку заливаю через чип-прог 40 (контроллер вставляю в панельку программатора). При подаче питания на контроллер (уже в макетке) длительность импульса и паузы по 8 миллисекунд. Контроллер работает от внутреннего генератора, хотя фьюзами я установил тактовую от кварца (на макетке 4МГц). Подскажите, где я ошибся. И еще вопрос-откуда берется эта строчка:
$regfile = "attiny461.dat"
Как ее сгенерировать, найти (не знаю как спросить...) в баскоме.
Пасиба.
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

Сообщение aleksandr-zh »

И еще вопрос-откуда берется эта строчка:
$regfile = "attiny461.dat"

это команда компилятору, которая указывает ему модель используемого МК.
он будет использовать разные выводы, разные регистры именно под данный МК

сделайте скриншот фузов, так понятнее будет что да как
Друг Кота
Аватара пользователя
Сообщения: 4744
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

Сообщение vem566 »

Похоже на тактирование от внутреннего RC генератора. Он по умолчанию 1 МГц. Как раз 8 мс и будет.
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Сообщение pavel1979 »

легко проверить-отпаять кварц,если все работает-работает от внутреннего генератора
Родился
Сообщения: 3
Зарегистрирован: Чт янв 09, 2014 19:29:08

Сообщение 1kostik1976 »

Фузы выставлял так...
CKDIV8
SUT1
CKSEL1
SPIEN
на эти поставил "галочки",
на остальные "галочки" не ставил.
Кварц не работает-на нем нет генерации...А хочется чтоб работал...
Ответить

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