Вот спасибо!
а я балбес перерыл, думал что и не найду.
Странно что нигде в хелпе это не подчеркнули. или хотя б пример задания прерывания по шестнадцатеричному коду, я б уже и так ручками набрал бы по датащету!
On OC1A T1_compare ' обзываем прерывание по совпадению
Enable Interrupts ' разрешаем все прерывания
Enable OC1A ' и отдельно по совпадению
Do ' основной цикл
..........
Loop
T1_compare: ' обработка прерывания
................
Return
Не совсем понимаю Вашего стремления к "шестнадцатеричному коду".
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
'------------------------------------------------------------------
' flyroman by roboforum.ru ®2010
' Программа приема и отправки сообщений по UART/ Bascom AVR
'------------------------------------------------------------------
$regfile = "m32def.dat"
$crystal = 7372800
$baud = 115200
$framesize = 16
$hwstack = 24
$swstack = 16
Dim Comchar As Byte 'принимаемый символ
Dim Buff As String * 20 'переменная буфер
Dim Bcount As Byte 'счетчик принятых байтов
Dim Flagbuf As Bit 'переменная Флаг конца приема сообщения
On Urxc Getchar 'переопределяем прерывание на передачу по usart
Enable Urxc 'включаем прерывание uart
Enable Interrupts
Reset Flagbuf
'Основной цикл
Do
If Flagbuf = 1 Then
Disable Serial
'If Mid(buff , 1 , 5) = "hello" Then 'проверка на приход определенного сообщения, в данном случае "hello"
'
' .....
'
'End If
Print Buff 'отправляем принятое сообщение
Print Bcount 'тправляем количество принятых байт
Buff = "" 'сбрасываем буфер
Reset Flagbuf 'сбрасываем флаг приема сообщения
Enable Serial
End If
Loop
Getchar:
Comchar = Inkey() 'принимаем 1 символ
If Comchar <> 13 Then 'проверяем является ли этот символ Enter'ом
Buff = Buff + Chr(comchar) 'если нет, то добавляем его в буфер
Incr Bcount 'увеличиваем на 1 счетчик байтов
Else
Flagbuf = 1 'если символ оказался "Enter", тогда флаг устанавливаем в 1. "Enter"- конец сообщения
End If
Return
но он работает странно, по прерыванию уходит и зависает там, тоесть после обработки нельзя второй раз вызвать его
у меня мега 88
разьясню на лапах:
бак у нас 30 литров
после замера стало известно что бак опустошен на половину:
дисплей показывает 15 литров, переключаем в псевдографический режим и видим: E|||| |||| |||_________F (палка одна линия на ЖКИ) - визуальное значение уровня воды/бензина/etc
после работы стало бак стал пуст: E|(моргает)_________F - то есть пусто.
в этой реализации я и запутался, в создании граф режима, то есть вообще не знаю как реализовать этот графический бар.
подскажите кодом или проектом, как это реализовать..
Покажи для начала свои наработки (каким образом осуществляешь вывод информации на ЖКИ, алгоритм замера уровня жидкости, кокое представление имеет результат измерения на данном этапе), тогда и будем вгонять в код то, что тебе нужно.
[size=85][color=#80BF00][b]Извращение это[/b][/color]: программатор - [color=#40BFBF]AVR910 by Prottoss[/color], прошивка - [color=#40BFBF]Doper[/color], драйвер - [color=#40BFBF]Osamu Tamura[/color], называется - [color=#FF0000]STK500[/color]![/size]
Set Porta.0 : t1 Alias Pina.0 'подключаем внутренний подтягивающий резистор pul-up к порту А.0 и даем ему имя t1, что соответствует кнопке Меню
Config Clock = User 'работа с DS1307
Config Date = Dmy здесь задаем параметр даты- день, месяц, год,
Separator = . Здесь separator это точка
Библиотека для работы с DS1307 (Для работы с часами DS1307 была написана нехитрая библиотека содержащая следующие базовые функции:
DS_start – запускает часы. Запустить часы можно так же установив время.
DS_stop – останавливает часы
DS_set_time – Установка времени. Перед вызовом процедуры нужно поместить в tmp1 – секунды в tmp2 – минуты и в tmp3-часы. Часы в 24-х часовом формате.
DS_get_time: – считывание времени из часов. секунды будут записаны в tmp1, минуты в tmp2, часы в tmp3
DS_get_date: – считывание даты из часов. День будет записан в tmp1, месяц в tmp2, год в tmp3
DS_set_date: - установка даты. Перед вызовом процедуры нужно поместить в tmp1 – день в tmp2 – месяц и в tmp3-год (последние 2 цифры)
Почитайте может многое разъяснится http://www.pyclan.com/forum/index.php?topic=61.0
ну что по юарту никто не поможет? беру мегу8 делаю как по примеру выше приводил и нифига как нужно не работает! но странно что на мега88 работает! кто поделиться работающим примером получения данных из юарта по прерыванию получения данных
AVRDaemon писал(а):Именно наработок никаких в этом плане нет, это идея.
я не знаю как подобным способом реализовать эту фунцкию, вот и прошу совета навести на код..
Я тут как-то вытворял себе вольтметр, который кроме цифрового представления напряжения выдает еще и графическое в виде линейки из черточек для более быстрого отслеживания процесса изменения напряжения. Если это подойдет могу выложить весь проект. Все работает в железе. МК AT90S4433, LCD 16x2.
да действительно работает, это я чайник, вся проблема оказалась в китайском разъеме, у него оказалась закорочена шина приема с передачей, странно одно, если б вообще ничего не работало я бы искал причину, а так передача шла нормально, а вот прием, никак!
Ситуация у меня вот какая, я смотрю функция Print в барсике передает наверно окончание строки и перевод корретки, а как например передать четко переменную String и в конце Энтер например Chr(13) ?
Geka2000 писал(а):да действительно работает, это я чайник, вся проблема оказалась в китайском разъеме, у него оказалась закорочена шина приема с передачей, странно одно, если б вообще ничего не работало я бы искал причину, а так передача шла нормально, а вот прием, никак!
Ситуация у меня вот какая, я смотрю функция Print в барсике передает наверно окончание строки и перевод корретки, а как например передать четко переменную String и в конце Энтер например Chr(13) ?
Здесь были? http://bascomavr.3bb.ru. Там очень много всякого материала по Баскому и разнообразных ссылок, например ссылка на обучалку тов. WildCat-a. Там ваще для бестолковых все разжевано. Только не поймите привратно... Слово (бестолковый) к Вам лично не относится! Так как не всегда "начинающий" == "бестолковый".
Geka2000 писал(а):
Ситуация у меня вот какая, я смотрю функция Print в барсике передает наверно окончание строки и перевод корретки, а как например передать четко переменную String и в конце Энтер например Chr(13) ?
читаем хелп
PRINTBIN is equivalent to PRINT CHR(var);
Все делают ошибки, только мудрецы - новые, а дураки - старые.