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

Обсуждаем контроллеры компании Atmel.
aleksandr-zh
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

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

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

amv2000 писал(а):
selco писал(а):Кто знает,как сделать на 3310 логарифмическую шкалу
Как вариант сделать серию изображений от пустой шкалы до заполнения (какая дискретность, столько и рисунков), измеряем уровень на АЦП и в зависимости от уровня через Select case выводим нужный рисунок.
я делал, но на предшественике Баскома - FastAVR

всё что есть, разбирайтесь сами - не обессудьте
Вложения
Nokia-3310.zip
(515.78 КБ) 193 скачивания
Реклама
Аватара пользователя
selco
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Пн июл 25, 2011 14:24:34

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

Сообщение selco »

[quote="aleksandr-zh"]
Спасибо.
Реклама
Аватара пользователя
Gordon Shumway
Мучитель микросхем
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область
Контактная информация:

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

Сообщение Gordon Shumway »

selco писал(а):Спасибо.
Я делал похожее, но на дисплее 1100 - делал вертикальную шкалу для термометра. Для этого я просто перерисовал ненужные символы из библиотеки (сделал вместо них разное количество горизонтальных черточек) и выводил по необходимости. Грубо говоря 0 - пробел. 1 - символ с одной чертой, 2 - с двумя и т.д... Насколько я помню библиотеку от 3310 - там это можно сделать в файле 3310end.bas.
С уважением,
Алексей.
aleksandr-zh
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

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

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

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

вот, еще нашел
тут как раз двигающаяся
Вложения
dvig_shkala.zip
(3.43 КБ) 202 скачивания
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
dimon-790
Мучитель микросхем
Сообщения: 442
Зарегистрирован: Пт авг 29, 2008 09:22:37
Контактная информация:

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

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

ut1wpr писал(а):Читайте литературу.
Согласен , пожалуй мне надо более глубоко изучить мат часть. Хотел нахаляву разъдобыть , думал мож кто уже занимался подобмными весчами . Видать прийдётся стать первооткрывателем ...
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
Реклама
Аватара пользователя
selco
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Пн июл 25, 2011 14:24:34

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

Сообщение selco »

[quote="Gordon Shumway"]
Всё это я понимаю,но,программа выполняет ещо и другие функции. Когда изменяется шкала то естественно чистится экран,цифры и другие надписи в этот момент мигают. нельзя ли сделать очистку определённой строки? Пробовал в end файле добавить вторую очистку,но он чистит всегда с верху,менял значение от 0 до 503 и всё равно чистит с верху. Мне нужна только нижняя строчка. Помогите.
Реклама
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

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

Сообщение ut1wpr »

dimon-790 писал(а):
ut1wpr писал(а):Читайте литературу.
Видать прийдётся стать первооткрывателем ...
Не получится. Все уже открыто до вас. Ваша проблема не в том, что НЕТУ, просто нету именно ТОГО, что вам нужно. Есть основа, а ее придется изучить понять и переделать. Обыкновенное обучение на начальном уровне. Без выхода на этот уровень, а потом и на более высокие, открытий не сделаете.
С уважением,
Виктор.
vanyap1
Электрический кот
Сообщения: 1048
Зарегистрирован: Пт июл 30, 2010 11:49:03
Откуда: Украина
Контактная информация:

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

Сообщение vanyap1 »

Как пользоваться дифференциальным усилителем у меги16?
Точнее - как измерять ток через шунт с помощью АЦП без внешнего ОУ?
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

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

Сообщение zero648 »

vanyap1 писал(а):Как пользоваться дифференциальным усилителем у меги16?
Точнее - как измерять ток через шунт с помощью АЦП без внешнего ОУ?
Пример из даташита меги16:

Example:
ADMUX = 0xED (ADC3 - ADC2, 10x gain, 2.56V reference, left adjusted result)
Voltage on ADC3 is 300 mV, voltage on ADC2 is 500 mV.
ADCR = 512 * 10 * (300 - 500) / 2560 = -400 = 0x270
ADCL will thus read 0x00, and ADCH will read 0x9C. Writing zero to ADLAR right
adjusts the result: ADCL = 0x70, ADCH = 0x02.
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

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

Сообщение Igor_67 »

selco писал(а):
Gordon Shumway писал(а): Всё это я понимаю,но,программа выполняет ещо и другие функции. Когда изменяется шкала то естественно чистится экран,цифры и другие надписи в этот момент мигают. нельзя ли сделать очистку определённой строки? Пробовал в end файле добавить вторую очистку,но он чистит всегда с верху,менял значение от 0 до 503 и всё равно чистит с верху. Мне нужна только нижняя строчка. Помогите.
Я так понимаю, что очистка экрана идет в цикле? А если отслеживать по изменению уровня? Если уровень уменьшился, тогда очищаем экран и перерисовываем, а если увеличился, тогда очищать не надо, просто добавить к шкале n-ное количество пикселей. Наверное так будет меньше моргать. Другой вариант - увеличить частоту перерисовки экрана, только это, наверное, уже придется 32 разрядный МК использовать или ПЛИС.
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
dimon-790
Мучитель микросхем
Сообщения: 442
Зарегистрирован: Пт авг 29, 2008 09:22:37
Контактная информация:

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

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

Вот

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

$regfile = "m8535.dat"
$crystal = 8000000
$baud = 9600
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Config Serialin = Buffered , Size = 255                     ', Bytematch = All
Config Lcdpin = Pin , Db7 = Porta.3 , Db6 = Porta.2 , Db5 = Porta.5 , Db4 = Porta.4 , Rs = Porta.7 , E = Porta.6

Dim Na As Byte , Buf_count As Byte , A As Byte
'Ucsrb.5 = 0
Enable Interrupts
'Clear Serialin
'$timeout = 500000
Do

  If Ischarwaiting() = 1 Then                               'если байт в регистре
  Inputbin Na                                               'Забираем Его В Na
  Incr Buf_count                                            'увеличиваем счётчик кол-ва байт
   End If

    Waitms 2                                                'ждём немного

   If Ischarwaiting() = 0 Then                              'если буфер попрежнему пуст
   If Buf_count > 1 Then                                    'а счётчик кол-ва байт больше единицы
     Cls                                                    'выдаём получиные на индикатор
  Lcd Hex(na)
  Lowerline
  Lcd Buf_count
  Buf_count = 0                                             '
  End If
  End If

Loop
поковырялся немного вчера , вроде получил что хотел . Но как всегда , терзают смутные сомнения , особенно задержка между условиями . Интересно , как ещё можно узнать, что приём последнего байта закончен ?.
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
Аватара пользователя
dimon-790
Мучитель микросхем
Сообщения: 442
Зарегистрирован: Пт авг 29, 2008 09:22:37
Контактная информация:

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

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

Похоже мне "везёт" на чудеса . Попытался запустить тиньку , с софтовым юарт-ом не тут-то было ! не принимает воообще никак . Передача прекрасно а приём фиг-вам . Народ гляньте код ,

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

$regfile = "attiny45.dat"
$crystal = 8000000
Dim Na As String * 6                                     

Open "comb.1:9600,8,n,1" For Output As #1
Open "comb.2:9600,8,n,1" For Input As #2

Do

Na =Waitkey (#2)
Print #1 , Na

Loop
чё я там накасячил ? вроде всё по учебнику . :oops: ..
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
Аватара пользователя
Kill17
Открыл глаза
Сообщения: 63
Зарегистрирован: Вс май 30, 2010 20:27:33
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение Kill17 »

Добрый день!

Товарищи форумчане, нужна Ваша помощь!

Пытаюсь освоить Баском, вроде что-то понимаю, но подводные камни все таки нахожу. Пишу программу для своего дивайса, но столкнулся с проблемой.

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

-------------------
все никак победить не могу, теперь он при посылке теряет байты через один. Отправил 33 34 35 36, получил 33 35, как победить, наставьте на путь истинный

$regfile = "attiny2313.dat"
$crystal = 11059200
$hwstack = 40
$swstack = 16
$framesize = 32

Dim I As Byte

Config Serialin = Buffered , Size = 10
Config Serialout = Buffered , Size = 10

Open "comd.0:115200,8,n,1" For Input As #2
Open "comd.4:115200,8,n,1" For Output As #3

Do

Inputbin #2 , I
Printbin #3 , I

loop


Close #2
Close #3
Аватара пользователя
dimon-790
Мучитель микросхем
Сообщения: 442
Зарегистрирован: Пт авг 29, 2008 09:22:37
Контактная информация:

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

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

а почему не использовать хардовый юарт ? в 2313 он есть. По сути вопроса , вы пытаетесь впихнуть несколько байт в один . Переменная I в вашем случае , составляет 1-байт , а посылку принимаете много байтную :o естественно теряете часть посылки.
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
Аватара пользователя
Kill17
Открыл глаза
Сообщения: 63
Зарегистрирован: Вс май 30, 2010 20:27:33
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение Kill17 »

Трудность в том, что нужно будет в последствии сделать два - три уарта.

Так, а как это победить, просто в эдеале он должен принимать и передавать побайтно.
Аватара пользователя
Секретный кот
Поставщик валерьянки для Кота
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки
Контактная информация:

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

Сообщение Секретный кот »

Два аппаратных уарта есть в некоторых мегах. А третий уарт, который нужен только для передачи, легко сделать софтовым.
Даже остановленные часы два раза в сутки показывают правильное время.
Аватара пользователя
dimon-790
Мучитель микросхем
Сообщения: 442
Зарегистрирован: Пт авг 29, 2008 09:22:37
Контактная информация:

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

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

вот накидал , более или менее рабочий код , правда кривовато но работает ...

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

$regfile = "m8535.dat"
$crystal = 8000000
$baud = 9600
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Config Serialin = Buffered , Size = 10
'Config Serialout = Buffered , Size = 10                     ', Bytematch = All

Open "comc.1:9600,8,n,1" For Input As #1
Open "comc.0:9600,8,n,1" For Output As #0


Dim Na(10)as Byte , Buf_count As Byte , A As Byte

Enable Interrupts
Clear Serialin
 Buf_count = 1
Do

  If Ischarwaiting() = 1 Then                               'если байт в регистре
  Inputbin Na(buf_count) , 1                                'Забираем Его В na
  Incr Buf_count                                            'увеличиваем счётчик кол-ва байт
   End If

    Waitms 2                                                'ждём немного

  If Ischarwaiting() < 1 Then                               'если буфер попрежнему пуст

  If Buf_count > 1 Then                                     'а счётчик кол-ва байт больше единицы
  For Buf_count = Buf_count To 2 Step -1
  Incr A
  Printbin #0 , Na(a) ; 1                                   'выдаём полученые данные
  Next
  A = 0
  Clear Serialin                                            '
  End If
  End If

Loop

Close #1
Close #0
приём по хардовому юарту передача по софтовому.
Вложения
uart.rar
файлик для моделирования в протеусе
(14.65 КБ) 216 скачиваний
Все мы работаем по методу Робинзона Крузо – ждем пятницу.
Аватара пользователя
Kill17
Открыл глаза
Сообщения: 63
Зарегистрирован: Вс май 30, 2010 20:27:33
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение Kill17 »

Спасибо огромное, буду пробывать!
Аватара пользователя
Kill17
Открыл глаза
Сообщения: 63
Зарегистрирован: Вс май 30, 2010 20:27:33
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение Kill17 »

Большое спасибо, все работает, но принимать мне необходимо от 4 до 125 байт в посылке, а буфер соответственно с этим не справляется, возможно сделать это через запись в ЕЕПРОМ или все это бесполезно? Посоветуйте, какие еще есть выходы из данной ситуации?
yarik.ks
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Сб дек 11, 2010 12:37:39

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

Сообщение yarik.ks »

Здравствуйте уважаемые Господа Коты! Подскажите пожалуйста как организовать таймаут по приему UART? Раньше програмировал на пик барсике, там все просто: HSERIN, timeout,метка,переменная. А тут случилось что надо написать прогу под мегу8, ломаю голову как вывести из состояния приема, если ничего не получено. В баскоме новичек, не ругайте, заранее спасибо

PS Вроде докопался $TIMEOUT буду пробывать
Ответить

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