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

Обсуждаем контроллеры компании Atmel.
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

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

Сообщение pavel1979 »

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

CKDIV8 убери,попробуй прочитать фьюзы-должно работать
чтоб не переставлять мк туда-сюда можно программировать внутрисхемно
Аватара пользователя
rus084
Друг Кота
Сообщения: 3443
Зарегистрирован: Вт июн 28, 2011 12:11:50
Откуда: Россия,Ставропольский край, ст.Бекешевская
Контактная информация:

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

Сообщение rus084 »

почему оператор toggle неработает через if then во 2 уровне ветвлений ?
Меня зовут Димон .
Изображение
Изображение
1kostik1976
Родился
Сообщения: 3
Зарегистрирован: Чт янв 09, 2014 19:29:08

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

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

CKDIV8 убери - убирал-не помогло (кажется убирал...)
можно программировать внутрисхемно - да, знаю... Какие-то переходики к программатору есть, но по моему под микрочип. Завтра по возможности почитаю описалово на программатор (на работе играюсь...). В ближайших планах слепить домашний программатор юсб...
Аватара пользователя
serg_svd
Собутыльник Кота
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

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

Сообщение serg_svd »

rus084 писал(а):почему оператор toggle неработает через if then во 2 уровне ветвлений ?

Непонятен вопрос. Пример кода приведите пожалуйста
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Аватара пользователя
rus084
Друг Кота
Сообщения: 3443
Зарегистрирован: Вт июн 28, 2011 12:11:50
Откуда: Россия,Ставропольский край, ст.Бекешевская
Контактная информация:

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

Сообщение rus084 »

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

if u<480 or i>511 then
 config portb.4 =  output
  if <480 and i>511 then
  toggle portb.4
  else
    if i>511 then
    portb.4 = 1
    else
    portb.4 = 0
    end if
  end if
else
 config portb.4 = input
endif
Меня зовут Димон .
Изображение
Изображение
Аватара пользователя
serg_svd
Собутыльник Кота
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

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

Сообщение serg_svd »

rus084 писал(а):

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

if u<480 or i>511 then
 config portb.4 =  output
  if <480 and i>511 then
  toggle portb.4
  else
    if i>511 then
    portb.4 = 1
    else
    portb.4 = 0
    end if
  end if
else
 config portb.4 = input
endif


Пока вижу несколько неточностей в написании, на мой взгляд. Попробуйте так:

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

if u<480 or i>511 then
 config portb.4 =  output
  if переменная?<480 and i>511 then
  toggle portb.4
  elseif i>511 then
    portb.4 = 1
    else
    portb.4 = 0
  end if
else
 config portb.4 = input
endif

Всей вашей задумки не знаю при каких условиях что и как должно настраиваться и работать. Возможно можно вообще эту часть переписать иначе
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Аватара пользователя
rus084
Друг Кота
Сообщения: 3443
Зарегистрирован: Вт июн 28, 2011 12:11:50
Откуда: Россия,Ставропольский край, ст.Бекешевская
Контактная информация:

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

Сообщение rus084 »

спасибо !
Меня зовут Димон .
Изображение
Изображение
Аватара пользователя
AndrNet
Мучитель микросхем
Сообщения: 451
Зарегистрирован: Пт сен 18, 2009 08:36:36
Откуда: Пятигорск
Контактная информация:

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

Сообщение AndrNet »

Народ, помогите подправить программу. Программа не моя и в программировании я не силен.

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

'*********************************************** 
Soprot: ' измерение сопротивления

Nomer = 0
Start Adc
Cls
Rele = 1 'включаем реле подключаем питание форсунок к источнику тока
 Lcd "д1 д2 д3 д4" 'лсд- "ф1 ф2 ф3 ф4"
F1 = 1 'подключаем форсунку № 1
 Call Test 'уходим измерять сопротивление
 Izm1 = Izmn 'присваиваем измеренное значение первой форсунке
Locate 2 , 1
 Lcd Izm1 'выводим на индикатор сопротивление под символом "ф1"
F1 = 0 'отключаем первую
F2 = 1 'включаем вторую
 Call Test
 Izm2 = Izmn 'тоже с остальными
Locate 2 , 5
 Lcd Izm2
F2 = 0
F3 = 1
 Call Test
 Izm3 = Izmn
Locate 2 , 9
 Lcd Izm3
F3 = 0
F4 = 1
 Call Test
 Izm4 = Izmn
Locate 2 , 13
 Lcd Izm4
Vpusk = 0
F1 = 1 'устанавливаем в 1 для дальнейшей работы
F2 = 1
F3 = 1
F4 = 1
Imp = 0
Menu = 9 '9 чтобы остались показания на индикаторе после измерения
Goto Nachalo

Sub Test 'измеряем
Incr Nomer 'прибавляем каждый раз по еденице чтобы в случае неисправности
Wait 1 'вывести номер неисправной форсунки
Izmn = Getadc(0)
Izmn = Izmn - 134 'вычитаем для компенсации перехода транзистора (возможно надо подобрать)
Izmn = Izmn / 2 'чтобы было в Омах

Там где 14 11 6 17 сразу после второй цифры был знак "Омега"
И еще добавить коректировку компенсации перехода транзистора в каждый канал, а не общая для всех.
Лучше так, чтоб я добавил цифру со знаком, например +2 или -1 (Ом) и оно учитывалось при выводе на дисплей.
Вложения
stendrus.zip
Весь исходник
(27.41 КБ) 165 скачиваний
SDC12768.gif
Так выглядит на дисплее
(42.79 КБ) 383 скачивания
Аватара пользователя
Dnepr_1186
Потрогал лапой паяльник
Сообщения: 398
Зарегистрирован: Чт мар 26, 2009 20:53:27
Откуда: Беларусь.Минская обл.

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

Сообщение Dnepr_1186 »

Помогите разобраться. Написал программу выводящую температуру и пр ерунду на экран. Добавил потом также функцию тахометра. Экран использую нокия 3310. Так вот как только добавил тахометр и разрешил преывание по захвату на экране начинает творится неизвестно что, все символы сбиваются и плывут. В чем может быть проблема?
Вложения
3310_library.rar
(33.65 КБ) 214 скачиваний
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

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

Сообщение pavel1979 »

Dnepr_1186 писал(а):Помогите разобраться. Написал программу выводящую температуру и пр ерунду на экран. Добавил потом также функцию тахометра. Экран использую нокия 3310. Так вот как только добавил тахометр и разрешил преывание по захвату на экране начинает творится неизвестно что, все символы сбиваются и плывут. В чем может быть проблема?

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

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

Сообщение Dnepr_1186 »

Павел, спасибо! Действительно помогло! В протеусе все работает на ура. Частота измняется при подаче сигнала от генератора как надо.
А вот в железе, идет погрешность 1-3герца, в основнмо на частотах выше 15герц. Из за чего это? Из за вмешательства в прерывание? Или все же является следствием того что я использую внутренний генератор мк а не кварц?
Аватара пользователя
rus084
Друг Кота
Сообщения: 3443
Зарегистрирован: Вт июн 28, 2011 12:11:50
Откуда: Россия,Ставропольский край, ст.Бекешевская
Контактная информация:

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

Сообщение rus084 »

во время вывода текста получается что тахометр не считает импульсы
Меня зовут Димон .
Изображение
Изображение
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

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

Сообщение pavel1979 »

видимо просто пропуски прерываний раз мы их отключили,как вариант можно попробовать делать наоборот-создаем переменную flag as bit,ставим метку label перед тем местосм,где начинается обращение к индикатору,как только наступил момент когда идет обращение к индикатору флаг=1(дошли до метки),когда индикатор обновился флаг=0(перед loop в вашем случае),так вот-когда наступает прерывание то в его конце проверяем флаг,если он =1===индикатор не обновился до конца и снова идем на обновление индикации-нашу метку
.........
Dim flag as bit
............
Ee = Str(fff)
Ee = Ee + " "
End If
label:
flag=1
Call D3310position(1 , 0)
Call D3310print( "ENGINE TEMP:")
Call D3310position(1 , 1)
Call D3310print( "LEFT:")
Call D3310position(8 , 1).....
flag=0
loop
..........

Capt: 'обработка прерывания
Timcount = Capture1 'считывание из регистра захвата
Timer1 = 0 'сброс таймера
if flag=1 then goto label
Return
примерно так-надо сидеть,пробовать
Аватара пользователя
Dnepr_1186
Потрогал лапой паяльник
Сообщения: 398
Зарегистрирован: Чт мар 26, 2009 20:53:27
Откуда: Беларусь.Минская обл.

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

Сообщение Dnepr_1186 »

нет, с флагами не прокатывает. Я думаю ведь время обращения к экрану у нас всегда одинаковое. Возможно надо просто ввести поправочный коэфициент для частоты, чтобы показания установились правильно
_Vasilij_
Встал на лапы
Сообщения: 124
Зарегистрирован: Пт янв 25, 2013 02:48:32

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

Сообщение _Vasilij_ »

это тах для машины или какого-то пропеллера ? Если для машины, то рекомендую производить серию замеров, типа 10 захватов, потом суммируем и делим на 10 - в железе(на авто) работает стабильней. А с одним измерением красиво только от генератора импульсов на столе получается, а на реальном авто неравномерность всетаки какая-то, а по усредненному уже ближе к теме. Ds18b20 тоже не любит прерываний в момент своего общения и иногда можете ересь показывать.
Да и вобще выводить данные на экран достаточно раз в 1-2сек., и на это время отключать замер частоты - ничего страшного не случится
rojnov
Встал на лапы
Сообщения: 127
Зарегистрирован: Вс мар 27, 2011 07:48:48
Откуда: г. Екатеринбург

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

Сообщение rojnov »

Приветствую всех. У меня такая проблема: надо сделать терморегулятор для управления ТЭНом. В принципе прога работает, но никак не могу победить подпрограмму настройки температуры срабатывания. Надо, чтобы был виден процесс установки температуры. В программировании я новичок, поэтому прошу подсказать, как мне победить этого зверя. Условия работы девайса: интервал темп. - от 10 до 60град. , индикатор с ОК, двухразрядный, выводятся только целые числа.
Аватара пользователя
kip96
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

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

Сообщение kip96 »

Просто нужно синхронизировать работу таймера и индикации и всё.
Индикацию выводить после срабатывания прерывания по таймеру.
Т.е. по прерыванию ставим флаг. В цикле выводим индикацию по флагу, и сбрасываем флаг.Дальше ждём следующего прерывания
Времени на индикацию хватит.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

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

Сообщение pavel1979 »

можно и так,просто если перестанет прерывание(обороты=0) надо вкл индикацию принудительно
rojnov
Встал на лапы
Сообщения: 127
Зарегистрирован: Вс мар 27, 2011 07:48:48
Откуда: г. Екатеринбург

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

Сообщение rojnov »

Я опять по поводу термостата. Не могу понять, как прикрепить файлы к своему сообщению - схема.jpeg и прога.bas. А то без этого трудно понять, чего я добиваюсь.
Аватара пользователя
Bear2011
Друг Кота
Сообщения: 13253
Зарегистрирован: Ср апр 06, 2011 09:58:13
Откуда: Кузбасс

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

Сообщение Bear2011 »

rojnov

Упакуй все в архив и прикрепи архив. Я тоже пытался получилось прикрепить только архивом. Или прикрепи прогу *.bas а рисунок вставь в текст сообщения
Ответить

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