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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

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

Сообщение max50 »

Alex_Megavolt_79 писал(а):Хех, а Config Clock = User вот этой командой запускаете софтовые часы. Уберите эту строчку и пойдут ошибки.

Совтовые часы запускаются строчкой CONFIG CLOCK = soft, а Config Clock = User - это часы по протаколу I2C.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Аватара пользователя
Alex_Megavolt_79
Грызет канифоль
Сообщения: 262
Зарегистрирован: Пт окт 30, 2009 22:33:56
Откуда: Санкт-Петербург

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

Сообщение Alex_Megavolt_79 »

Макс а у меня не то и не другое. В любом случае они считаются как софтовые. Таймер я конфигурирую сам. Расчёт секунд, минут, часов, дней, месяцев и лет делаю в подпрограммах. Мне нужны функции которых нет в стандартных и которые я уже написал. Кстати я первый раз не пробовал конфигурировать часы как юсер. Переделал прогу, компилятор выдал ошибку что отсутствует Getdatetime: . Я пустую подпрограмму добавил, после откомпилилось нормально. Но на макетке толком не работает. 1-2 с отсчитывает. И стоит. Установка времени и даты происходит и поэтому я вижу что вычисление дня недели происходит. Так что нужен сам алгоритм расчёта дня недели.
Последний раз редактировалось Alex_Megavolt_79 Ср сен 07, 2011 23:13:25, всего редактировалось 1 раз.
Аватара пользователя
Alex_Megavolt_79
Грызет канифоль
Сообщения: 262
Зарегистрирован: Пт окт 30, 2009 22:33:56
Откуда: Санкт-Петербург

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

Сообщение Alex_Megavolt_79 »

И ещё просьба, Макс, глянь мой пост на 96 стр. Там про менюшку, мож толкнёшь на мысль.
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

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

Сообщение max50 »

Можно попробовать сделать как в ссылке.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Aleks8383
Родился
Сообщения: 19
Зарегистрирован: Ср ноя 24, 2010 21:44:30
Откуда: Мичуринск

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

Сообщение Aleks8383 »

Может тут уже было ,но подскажите.Нет у кого примера работы на Bascome с графическим индикатором WG12864 и им подобным с контроллером KS0108.Соседнию ветку видел но что то на Bascome не нашёл примера,может просмотрел.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

В примерах баскома есть же работа с дисплеем на основе этого контроллера...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

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

Сообщение amv2000 »

Aleks8383 писал(а):Может тут уже было ,но подскажите.Нет у кого примера работы на Bascome с графическим индикатором WG12864 и им подобным с контроллером KS0108.Соседнию ветку видел но что то на Bascome не нашёл примера,может просмотрел.
$regfile = "m8def.dat" 'заголовочный файл для определения типа контроллера
$crystal = 8000000 'для рассчета времени задержки при компиляции, частоту выставляем фьюзами
$lib "glcdks108.lib" 'подгружаем библиотеку для контроллера KS0108
$hwstack = 40
$swstack = 40
$framesize = 40

Wait 2

Config Graphlcd = 128 * 64sed , Dataport = Portd , Controlport = Portc , Ce = 4 , Ce2 = 5 , Cd = 0 , Rd = 1 , Enable = 2 , Reset = 3

Dim X As Word , Y As Word

Cls

'Wait 1

Setfont Font8x8

Showpic 1 , 1 , Plaatje1
Lcdat 1 , 1 , " HELLO WORLD " , 1
Do
Lcdat 8 , 1 , "radiokot " , 1 '1 = inverse text
Wait 1
Lcdat 8 , 1 , "radiokot " 'none = normal text
Wait 1
Loop
End

Plaatje1:
'Include The Picture Data
$bgf "KS108.bgf"

$include "font8x8.font"
Aleks8383
Родился
Сообщения: 19
Зарегистрирован: Ср ноя 24, 2010 21:44:30
Откуда: Мичуринск

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

Сообщение Aleks8383 »

Спасибо за пример,а в справочнике Bascom чесно проглядел,буду разбираться.
Tom91
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт окт 08, 2010 15:43:55

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

Сообщение Tom91 »

Проблема такая делаю часы с DS1307 и термометр DS18B20, дело в том что во время измерения температуры нужна задержка в 750мс, как сделать так, чтобы в это время процесс не замирал и занимался выводом данных с часов...?, знаю что по прерыванию таймера, тоесть как только передаётся команда преобразования температ., запускаем таймер, и программа выполняется дальше, как только проходит 750мс происходит прерывание возврат на считывание измеренной температуры... Как сделать на BAscom понятия не имею, примеры приведёте?

А так же чем различаются процедуры и подпрограммы ? Я так понимаю писать подпрограммами нужно только там где возможны прерывания программы, а в других случаях где прерываний нет писать процедурами. Конкретно в моём случае с таймером потребуется всё строить из подпрограмм ведь прерывание таймера не предсказуемо... всё правильно понимаю?
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

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

Сообщение amv2000 »

Насколько я понимаю процедуры и подпрограммы это одно и то-же, а вот функции и подпрограммы это немного разное...
Вернее процедуры и функции это всё - подпрограммы, а еще точнее подпрограммы делятся на процедуры и функции:
Основное различие между процедурой и функцией состоит в том, что процедура только выполняет какую-либо законченную последовательность действий, не возвращая результата работы в основную программу, а функция и выполняет действия, и возвращает результат.
http://decada.org.ru/project/lessons/bascom_avr/09/
Vet-RX
Встал на лапы
Сообщения: 113
Зарегистрирован: Чт июл 30, 2009 14:33:42

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

Сообщение Vet-RX »

Доброй ночи всем Котам!
Такой вопрос:
есть часы на PCF8583. Нужно от некой переменной Х отнимать 1, каждую минуту,
отталкиваясь от того, что минута прошла в PCF8583. Возможно ли так сделать. Спасибо!
Аватара пользователя
Alex_Megavolt_79
Грызет канифоль
Сообщения: 262
Зарегистрирован: Пт окт 30, 2009 22:33:56
Откуда: Санкт-Петербург

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

Сообщение Alex_Megavolt_79 »

Vet-RX писал(а):Доброй ночи всем Котам!
Такой вопрос:
есть часы на PCF8583. Нужно от некой переменной Х отнимать 1, каждую минуту,
отталкиваясь от того, что минута прошла в PCF8583. Возможно ли так сделать. Спасибо!

Часто проверять изменение в третьей ячейке памяти в PCF8583 (там где минуты). Это делать следующим образом -
1. - сохранить в переменную (например обзовём её Seck) содержимое ячейки памяти.
2. периодически считывать содержимое ячейки памяти (минут) во временную переменную (например обзовём её temp). Сравнить Seck и temp. Если они не равны, то от переменной X отнять как Вы и хотите 1, затем в Seck сохранить новые данные.
остаётся циклически повторять п.2
Vet-RX
Встал на лапы
Сообщения: 113
Зарегистрирован: Чт июл 30, 2009 14:33:42

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

Сообщение Vet-RX »

2 Alex_Megavolt_79
Спасибо за подсказку, все гениальное просто, а я чото никак не мог сообразить :oops:
Аватара пользователя
selco
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Пн июл 25, 2011 14:24:34

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

Сообщение selco »

Терзают меня смутные сомнения насчот крупного шрифта для 3310 , неужели никак нельзя сделать хотябы одни цыфры?
Tom91
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт окт 08, 2010 15:43:55

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

Сообщение Tom91 »

Непонятки с функцией Getrc5, использует ли она прерывания и сам TSOP должен подключаться на вход прерывания МК или на любой вход?
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

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

Сообщение amv2000 »

Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

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

Сообщение amv2000 »

selco писал(а):Терзают меня смутные сомнения насчот крупного шрифта для 3310 , неужели никак нельзя сделать хотябы одни цыфры?

Да уже отвечали либо выводить как картинку, либо писать свою программу обработки...
Tom91
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт окт 08, 2010 15:43:55

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

Сообщение Tom91 »

amv2000 писал(а):http://avrproject.ru/publ/protokol_rc5_bascom_avr/1-1-0-30 здесь все описано

и в какой строчке сказано что обязательно на вход прерывания?

Вообще вешал и на вход прерывания и на обычный вход всё равно значения команд и данных остаётся равным 255. Заметил что если отключить прерывания то программа замирает когда доходит до строчки Getrc5... :(
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Tom91 писал(а):Заметил что если отключить прерывания то программа замирает когда доходит до строчки Getrc5...


Ну так разумеется !!! Что в хелпе написано? Отличная же справка...

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

Syntax

GETRC5( address, command )

Uses

TIMER0
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

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

Сообщение max50 »

Вот рабочий код:

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

$regfile = "ATtiny2313.DAT" 
 $crystal = 8000000

 Enable Interrupts

 Config Rc5 = Pind.0

 Config Pinb.1 = Output
 Relay1 Alias Portb.1

 Config Pinb.2 = Output
 Relay2 Alias Portb.2

 Config Pinb.3 = Output
 Relay3 Alias Portb.3

 Config Pinb.4 = Output
 Relay4 Alias Portb.4

 Config Pinb.5 = Output
 Relay5 Alias Portb.5

 Config Pinb.6 = Output
 Relay6 Alias Portb.6

 Config Pinb.7 = Output
 Relay7 Alias Portb.7

 Config Pind.1 = Input
 Relay1_on_off Alias Pind.1
 Set Portd.1

 Config Pind.2 = Input
 Relay2_on_off Alias Pind.2
 Set Portd.2

 Config Pind.3 = Input
 Relay3_on_off Alias Pind.3
 Set Portd.3

 Config Pind.4 = Input
 Relay4_on_off Alias Pind.4
 Set Portd.4

 Config Pind.5 = Input
 Relay5_on_off Alias Pind.5
 Set Portd.5

 Config Pind.6 = Input
 Relay6_on_off Alias Pind.6
 Set Portd.6

 Config Pinb.0 = Input
 Relay7_on_off Alias Pinb.0
 Set Portb.0

 Dim Address As Byte
 Dim Command As Byte

 Do

 Getrc5(address , Command)
 If Address = 0 Then
 Command = Command And &B01111111
 End If

 If Relay1_on_off = 0 Or Command = 1 Then
 Waitms 500
 Toggle Relay1
 End If

 If Relay2_on_off = 0 Or Command = 2 Then
 Waitms 500
 Toggle Relay2
 End If

 If Relay3_on_off = 0 Or Command = 3 Then
 Waitms 500
 Toggle Relay3
 End If

 If Relay4_on_off = 0 Or Command = 4 Then
 Waitms 500
 Toggle Relay4
 End If

 If Relay5_on_off = 0 Or Command = 5 Then
 Waitms 500
 Toggle Relay5
 End If

 If Relay6_on_off = 0 Or Command = 6 Then
 Waitms 500
 Toggle Relay6
 End If

 If Relay7_on_off = 0 Or Command = 7 Then
 Waitms 500
 Toggle Relay7
 End If

 If Command = 12 Then
 Reset Relay1
 Reset Relay2
 Reset Relay3
 Reset Relay4
 Reset Relay5
 Reset Relay6
 Reset Relay7
 End If

 Loop

 End
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Ответить

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