Страница 195 из 304

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

Добавлено: Чт янв 09, 2014 21:30:02
pavel1979
1kostik1976 писал(а):Фузы выставлял так...
CKDIV8
SUT1
CKSEL1
SPIEN
на эти поставил "галочки",
на остальные "галочки" не ставил.
Кварц не работает-на нем нет генерации...А хочется чтоб работал...
CKDIV8 убери,попробуй прочитать фьюзы-должно работать
чтоб не переставлять мк туда-сюда можно программировать внутрисхемно

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

Добавлено: Чт янв 09, 2014 22:50:39
rus084
почему оператор toggle неработает через if then во 2 уровне ветвлений ?

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

Добавлено: Чт янв 09, 2014 22:58:49
1kostik1976
CKDIV8 убери - убирал-не помогло (кажется убирал...)
можно программировать внутрисхемно - да, знаю... Какие-то переходики к программатору есть, но по моему под микрочип. Завтра по возможности почитаю описалово на программатор (на работе играюсь...). В ближайших планах слепить домашний программатор юсб...

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

Добавлено: Пт янв 10, 2014 08:39:02
serg_svd
rus084 писал(а):почему оператор toggle неработает через if then во 2 уровне ветвлений ?
Непонятен вопрос. Пример кода приведите пожалуйста

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

Добавлено: Пт янв 10, 2014 09:57:42
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

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

Добавлено: Пт янв 10, 2014 11:08:56
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
Всей вашей задумки не знаю при каких условиях что и как должно настраиваться и работать. Возможно можно вообще эту часть переписать иначе

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

Добавлено: Пт янв 10, 2014 17:38:51
rus084
спасибо !

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

Добавлено: Пн янв 13, 2014 10:08:36
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 (Ом) и оно учитывалось при выводе на дисплей.

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

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

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

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

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

Добавлено: Чт янв 16, 2014 21:54:11
Dnepr_1186
Павел, спасибо! Действительно помогло! В протеусе все работает на ура. Частота измняется при подаче сигнала от генератора как надо.
А вот в железе, идет погрешность 1-3герца, в основнмо на частотах выше 15герц. Из за чего это? Из за вмешательства в прерывание? Или все же является следствием того что я использую внутренний генератор мк а не кварц?

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

Добавлено: Чт янв 16, 2014 22:06:12
rus084
во время вывода текста получается что тахометр не считает импульсы

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

Добавлено: Чт янв 16, 2014 22:11:11
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
примерно так-надо сидеть,пробовать

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

Добавлено: Чт янв 16, 2014 23:10:23
Dnepr_1186
нет, с флагами не прокатывает. Я думаю ведь время обращения к экрану у нас всегда одинаковое. Возможно надо просто ввести поправочный коэфициент для частоты, чтобы показания установились правильно

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

Добавлено: Чт янв 16, 2014 23:21:39
_Vasilij_
это тах для машины или какого-то пропеллера ? Если для машины, то рекомендую производить серию замеров, типа 10 захватов, потом суммируем и делим на 10 - в железе(на авто) работает стабильней. А с одним измерением красиво только от генератора импульсов на столе получается, а на реальном авто неравномерность всетаки какая-то, а по усредненному уже ближе к теме. Ds18b20 тоже не любит прерываний в момент своего общения и иногда можете ересь показывать.
Да и вобще выводить данные на экран достаточно раз в 1-2сек., и на это время отключать замер частоты - ничего страшного не случится

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

Добавлено: Пт янв 17, 2014 09:52:57
rojnov
Приветствую всех. У меня такая проблема: надо сделать терморегулятор для управления ТЭНом. В принципе прога работает, но никак не могу победить подпрограмму настройки температуры срабатывания. Надо, чтобы был виден процесс установки температуры. В программировании я новичок, поэтому прошу подсказать, как мне победить этого зверя. Условия работы девайса: интервал темп. - от 10 до 60град. , индикатор с ОК, двухразрядный, выводятся только целые числа.

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

Добавлено: Пт янв 17, 2014 10:01:15
kip96
Просто нужно синхронизировать работу таймера и индикации и всё.
Индикацию выводить после срабатывания прерывания по таймеру.
Т.е. по прерыванию ставим флаг. В цикле выводим индикацию по флагу, и сбрасываем флаг.Дальше ждём следующего прерывания
Времени на индикацию хватит.

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

Добавлено: Пт янв 17, 2014 11:02:33
pavel1979
можно и так,просто если перестанет прерывание(обороты=0) надо вкл индикацию принудительно

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

Добавлено: Пт янв 17, 2014 12:25:38
rojnov
Я опять по поводу термостата. Не могу понять, как прикрепить файлы к своему сообщению - схема.jpeg и прога.bas. А то без этого трудно понять, чего я добиваюсь.

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

Добавлено: Пт янв 17, 2014 12:31:30
Bear2011
rojnov

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