[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 2 из 2«12
Модератор форума: RD3AVJ 
Форум » форумы » Общие вопросы по Bascom-AVR » я не волшебник ,я просто учусь (Тонкости работы в Bascom -AVR или хочу все знать)
я не волшебник ,я просто учусь
niko-layДата: Пятница, 27.07.2012, 13:02 | Сообщение # 51
Группа: Проверенные
Сообщений: 19

Статус: Offline
Править существующую библиотеку не получается, чтобы для вывода картинки проц тащил данные не из массива с данными а из буфера юарта (ага, я КЭП ))) ?

 
trimДата: Пятница, 27.07.2012, 17:46 | Сообщение # 52
Группа: Пользователи
Сообщений: 105

Статус: Offline
именно так поэтому нужно как то отвязаться от библиотеки но приэтом выводить любые символы наверное так

 
trimДата: Вторник, 18.09.2012, 12:02 | Сообщение # 53
Группа: Пользователи
Сообщений: 105

Статус: Offline
привет привет давненько небыл как дела .......
вопрос такой как запустить несколько ацп на меге 16
и пару шим


 
shermanДата: Вторник, 18.09.2012, 22:06 | Сообщение # 54
Группа: Свой человек
Сообщений: 55

Статус: Offline
Привет!
С АЦП просто опрашиваешь нужные каналы по очереди командой GetADC(x) х-номер канала
с шим тоже все просто, описано тут http://avrproject.ru/publ/pwm_bascom/1-1-0-37


 
trimДата: Вторник, 18.09.2012, 23:48 | Сообщение # 55
Группа: Пользователи
Сообщений: 105

Статус: Offline
да это я изучал тут нужда встала нужно два резюка переменных и два мотора от шим сконфегурировать вот пока токо догадки как

 
trimДата: Вторник, 18.09.2012, 23:50 | Сообщение # 56
Группа: Пользователи
Сообщений: 105

Статус: Offline
все, просто летом не занимался выветрелось

 
trimДата: Вторник, 18.09.2012, 23:50 | Сообщение # 57
Группа: Пользователи
Сообщений: 105

Статус: Offline
$regfile = "m16def.dat"
$crystal = 4000000
$hwstack = 40
$swstack = 16
$framesize = 32
$baud = 19200
$prog &HFF , &HC3 , &HD9 , &H00 ' generated. Take care that the chip supports all fuse bytes. es.

Config Portb.4 = Output
Config Portd.7 = Output
Config Adc = Single , Prescaler = 8 , Reference = Avcc
Config Timer1 = Pwm , Pwm = 9 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Up , Prescale = 256
Config Servos = 1 , Servo1 = Portb.4 , Reload = 11

Enable Interrupts
Dim A As Word
Dim B As Word
Dim N As Word
Servo(1) = 0
Wait 1

Start Adc
A = Getadc(1)
B = Getadc(2)
Stop Adc
N = A / 3

Servo(1) = N
Compare1b = A
Compare1a = B
Return


 
trimДата: Вторник, 19.03.2013, 18:19 | Сообщение # 58
Группа: Пользователи
Сообщений: 105

Статус: Offline
Привет народ , как Жизнь вопрос возник, статейку прочитал одну ,а нам слабо ???
http://www.getchip.net/posts/087-attiny2313-sd-card-talking-device/ 


 
mpxДата: Воскресенье, 31.03.2013, 14:24 | Сообщение # 59
Группа: Пользователи
Сообщений: 4

Статус: Offline
Здравствуйте. Хотел спросить, на семи сегментный индикатор вывожу температуру с датчика на ds18b20. Но периодически на индикаторе появляются нули...........
$regfile = "m8def.dat"
$crystal = 8000000
'*****************************************[Идикатор с общим анодом]****************************************'
'*****************************************[Определение переменных и констант]************************************

Dim Count As Byte                                           ' переменная для индикации
Dim Number(3) As Byte                                       ' значения трех разрядов

Dim W As Integer
Dim M1 As Integer
Dim M2 As Integer
Dim M3 As Integer

' *** Заводим переменные

Dim Byte0 As Byte
Dim Byte1 As Byte
Dim T As Byte
Dim T1 As Byte
Dim T2 As Byte

'***********************************************[Инициализация портов]*******************************************

Config 1wire = Portc.1                                      'определяем порт для подключения датчика

Config Portc.2 = Output                                     ' светодиод для проверки температуры "+" или "-"

Config Portc.0 = Output                                     ' светодиод для проверки подключения датчика

Config Portd = Output                                       ' порт сегментов индикатора

Config Portb.3 = Output                                     ' первый разряд индикатора
Config Portb.4 = Output                                     ' второй разряд индикатора
Config Portb.5 = Output                                     ' третий разряд индикатора

'*********************************************[Инициализация прерываний]*****************************************

Config Timer0 = Timer , Prescale = 64                       ' конфигурируем таймер индикации (~500 Гц)
On Timer0 Refresh                                           ' метка на прерывание индикации

'********************************************[Присвоение уникальных имен]****************************************
Leg Alias Portc.2
Led Alias Portc.0                                           ' присваиваем имя светодиоду
Dig1 Alias Portb.3 : Dig2 Alias Portb.4 : Dig3 Alias Portb.5       ' и разрядам индикатора

'*********************************************[Начало основной программы]****************************************

Enable Interrupts                                           ' разрешаем все прерывания
Enable Timer0                                               ' и для индикации в частности
Start Timer0 
Do                                                          ' крутимся здесь, ожидая прерывание
1wreset
If Err = 1 Then                                             'если при опросе небыло ответа ставим флаг ошибки
Toggle Led                                                  ' мигаем светодиодом
Wait 1
Else                                                     ' иначе, если ошибки не было, продолжаем опрос датчика

1wwrite &HCC                                                ' Выдаем команду чтения ПЗУ
1wwrite &H44                                                ' Запуск измерения

Waitms 750                                                  ' Ждем окончания преобразования

1wreset
1wwrite &HCC
1wwrite &HBE                                                ' Команда чтения ОЗУ датчика

Byte0 = 1wread()                                            ' Читаем нулевой байт

Byte1 = 1wread()                                            ' Читаем первый байт

If Byte1 > 248 Then                                         ' Проверка на отрицательность температуры
Byte0 = &HFF - Byte0
Byte1 = &HFF - Byte1
Leg = 0                                                     'если "минусовая" погода то не горит светодиод

Else
Leg = 1                                                     'если "плюсовая" погода то горит светодиод
End If

T1 = Byte0 / 16                                             ' Сдвигаем нулевой байт вправо на 4 бита (2*2*2*2=16)
T2 = Byte1 * 16                                             ' Сдвигаем первый байт влево на 4 бита (2*2*2*2=16)
T = T1 + T2

M1 = T
M2 = M1
M3 = M1

M1 = M1 / 100                                               ' M1 = w/100
Number(1) = Abs(m1)                                         ' N1 = Abs (m1)
M2 = M2 Mod 100
M2 = M2 / 10
Number(2) = Abs(m2)
M3 = M3 Mod 10
Number(3) = Abs(m3)
End If
Wait 1                                                      ' ждем 1 секундy

Loop

'***********************************[Процедуры обработки подпрограмм и прерываний]*******************************

Refresh:                                                    ' прерывание таймера Т0 (индикация)

Set Dig1 : Set Dig2 : Set Dig3                            ' гасим индикатор

Incr Count : If Count > 3 Then Count = 1                    ' выбираем разряд для загрузки

Portd = Lookup(number(count) , Digits)                      ' закидываем в порт код цифры

Select Case Count                                           ' и включаем соответствующий разряд индикатора
Case 1 : Reset Dig1
Case 2 : Reset Dig2
Case 3 : Reset Dig3
End Select

Return                                                      ' выход из обработчика прерывания

Digits:                                                     ' цифры

Data &B11000000 , &B11111001 , &B10100100 , &B10110000 , &B10011001       ' 0 1 2 3 4
Data &B10010010 , &B10000010 , &B11111000 , &B10000000 , &B10010000       ' 5 6 7 8 9




Сообщение отредактировал mpx - Воскресенье, 31.03.2013, 14:52
 
kip96Дата: Вторник, 02.04.2013, 07:19 | Сообщение # 60
Группа: Свой человек
Сообщений: 166

Статус: Offline
читаем о 1wire, и на время измерения температуры останавливаем таймер, ибо он мешает.

 
mpxДата: Четверг, 04.04.2013, 22:26 | Сообщение # 61
Группа: Пользователи
Сообщений: 4

Статус: Offline
Я уже разобрался, код "причешу" и выложу........

 
АнтошинДата: Вторник, 26.11.2013, 19:47 | Сообщение # 62
Группа: Пользователи
Сообщений: 5

Статус: Offline
Здравствуйте люди!Хочу попросить Вашей помощи?Не завалялся ли у кого исходник обычного термометра с точностью до 0.1
с выводом на 7сегм.индикатор? к сожалению материал с нашего Уважаемого сайта я понял смутно.Вожусь уже неделю,свою
мегу16 уже замучил,работать то работает,но не так как бы хотелось (на период измерения 750-850мс индикатор гаснет,затем
отображает до переполнения таймера,затем цикл повторяется,ни как не получается вот эти 750мс заменить индикацией 
предидущего измерения),просто нужно мне понять раз и навсегда как это делается.Файл прикреплю.Выручайте!Помогите стать 
волшебником :))
Прикрепления: _led.2.bas(5Kb)


 
ПетрДата: Вторник, 26.11.2013, 23:03 | Сообщение # 63
Группа: Проверенные
Сообщений: 47

Статус: Offline
Есть у меня проект такого термометра, правда для 8 меги.
Прикрепления: Termo_Led.rar(33Kb)


 
kip96Дата: Четверг, 28.11.2013, 15:03 | Сообщение # 64
Группа: Свой человек
Сообщений: 166

Статус: Offline
Всё правильно, что бы измерять по шине 1wie нужно отключать таймер, что бы он не мешал. Но зачем держать выключенный таймер на 750-850мс?. Самое простое это  

 
stop timer1
1wreset                    ' Сброс датчика.
1wwrite &HCC                    ' Команда "Skip ROM".
1wwrite &H44                    ' Команда "Convert  T".   
 start timer1
Waitms 800   
 stop timer1
1wreset                    ' Сброс датчика.
1wwrite &HCC                    ' Команда "Skip ROM"
1wwrite &HBE
 start timer1




Сообщение отредактировал kip96 - Четверг, 28.11.2013, 15:12
 
АнтошинДата: Пятница, 29.11.2013, 19:17 | Сообщение # 65
Группа: Пользователи
Сообщений: 5

Статус: Offline
Спасибо!я тут тоже поразмыслил:задействовал Timer0/1024 на включение измерения,Timer1/256 на включение индикации
в момент ожидания датчика, не рационально конечно два таймера в таких целях,но все равно по лучше стало (хотя и чуточку
помаргивает) .В связи с чем у меня появился вопрос:как расчитать количество тиков таймера в единицу времени и время до
до его переполнения? Не могу сообразить.


 
kip96Дата: Пятница, 29.11.2013, 22:32 | Сообщение # 66
Группа: Свой человек
Сообщений: 166

Статус: Offline
Вы про это?

Цитата
Здесь Timer0 настроен на счет тактовых импульсов. Он считает тактовые импульсы с выхода делителя с настраиваемым коэффициентом 1, 8, 64, 256 или 1024. Таймер считает время, в течение которого он изменяется с 0 до 255. Пусть в нашем проекте стоит кварц 4МГц и делитель на 1024. Тогда таймер будет увеличивать значение каждые (коэффициент/тактовая частота, 1024/4.000.000)=0,256 миллисекунд. Тогда переполняться он будет каждые 255*0,256=65 миллисекунд. Time1 аналогичен Timer0, но он 16-битный, он считает до 65535 до переполнения. Таймеры начинают отсчет с момента конфигурации.
http://decada.org.ru/project/lessons/bascom_avr/10


 
АнтошинДата: Пятница, 29.11.2013, 22:43 | Сообщение # 67
Группа: Пользователи
Сообщений: 5

Статус: Offline
Да-да про это!А правда,что таймеры после переполнения начинают отсчет не с 0?

 
trimДата: Среда, 25.12.2013, 13:28 | Сообщение # 68
Группа: Пользователи
Сообщений: 105

Статус: Offline
Привет ребята давненько не писал вопрос есть не подскажите почему зависает на первом прерывании
Прикрепления: 9509064.txt(6Kb)


 
trimДата: Среда, 08.01.2014, 18:56 | Сообщение # 69
Группа: Пользователи
Сообщений: 105

Статус: Offline
ВСЕМ ПРивет ,Вопрос возник как можно смоделировать 3х фазную шим со смещением ?,или по средствам ВАМа ,тока я так и не понял как он работает

 
trimДата: Суббота, 18.01.2014, 19:21 | Сообщение # 70
Группа: Пользователи
Сообщений: 105

Статус: Offline
ПРИВЕТ  РЕБЯТ ,кто в АСМЕ шарит ? есть прога интересная под схему на мега 8 там реализовано управление двигателем от сидюка кто не знает он трех фазный и его можно использовать в авиамоделях))))) http://shop.aviamodelka.ru/article_info.php?articles_id=68

 
Форум » форумы » Общие вопросы по Bascom-AVR » я не волшебник ,я просто учусь (Тонкости работы в Bascom -AVR или хочу все знать)
Страница 2 из 2«12
Поиск: