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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
vem566
Друг Кота
Сообщения: 4732
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

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

Сообщение vem566 »

А оригинал в исходном виде есть? А то у меня были проблемы со стеком. Компилятор сообщал о занятости 60%, но не хватало размера стека. То есть свободно было 3,2 килобайта. Увеличил размер стека на 512 байт, перестало хватать памяти.
Похоже глюк компилятора. И у разных версий баскома разный размер выходного файла.
lionp
Открыл глаза
Сообщения: 64
Зарегистрирован: Пн мар 22, 2010 21:48:17

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

Сообщение lionp »

Если это про мою программку, то на предыдущей странице оригинал.
Никогда не бойся делать то, что ты не умеешь делать. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Аватара пользователя
vem566
Друг Кота
Сообщения: 4732
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

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

Сообщение vem566 »

Не работает в протеусе никакая из программ.
lionp
Открыл глаза
Сообщения: 64
Зарегистрирован: Пн мар 22, 2010 21:48:17

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

Сообщение lionp »

vem566 писал(а):Не работает в протеусе никакая из программ.


Работает. Но на всякий случай вот оригинал всего этого безобразия
Вложения
Candle.zip
(50.54 КБ) 329 скачиваний
Никогда не бойся делать то, что ты не умеешь делать. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Аватара пользователя
Gordon Shumway
Мучитель микросхем
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область
Контактная информация:

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

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

Доброго времени суток !

Уважаемые знатоки, никак не въеду что такое Fastpwm и чем он отличается от обычного pwm.

Вот рекомендация, которую мне дали для воплощения программы, но немного не понимаю как это сделать. Речь идет о выводе звука через Fastpwm, человек сделал это на Tiny2313, но не на Баскоме:

Спойлер
Формат файла - несжатый WAV. 32000 Гц, 1 канал, 8 бит (WAV PCM 8U). Это значит, что за секунду нужно прочитать с SD-карты 32000 байт и каждое считанное значение поместить в регистр OCR0A таймера0 (восьмибитного), для формирования необходимой скважности ШИМ. Читать байты и устанавливать новое значение периода (все тот-же OCR0A) удобно в прерывании Output_Compare_0A (прерывание по сравнению) . Таймер 0 удобно запускать в режиме FastPWM с пределителем=1. При частоте встроенного задающего генератора 8МГц, частота вызова прерывания будет практически равна 32000, что удобно, так как не потребуется делать пересчетов)


Вот кусок экспериментальной программы, написал только для того, чтобы понять как выводится звук и как с этим работать:

Спойлер

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

$regfile = "m32def.dat"
$crystal = 8000000
$hwstack = 128                                              '128
$swstack = 128                                              '128
$framesize = 128                                            '128


Dim V As Byte
Dim B As Byte
Dim S As String * 16
Dim Sdd As Byte

Config Timer0 = Pwm , Compare Pwm = Clear Down , Prescale = 1


Config Porta.0 = Output
Led Alias Porta.0

$include "Config_MMC.bas"
V = Gbdriveerror
$include "Config_AVR-DOS.BAS"
Sdd = Initfilesystem(1)

If Sdd <> 0 Then
Do
Toggle Led
Waitms 250
Loop
Else
Set Led
End If


Do

S = "summer.wav"
Open S For Binary As #1
Do
Get #1 , B
Pwm0 = B

Loop Until Eof(#1) <> 0
Pwm0 = 1
Close #1

Wait 1

Loop


Звук выводится, но очень медленно. Не могу разобраться почему...
С уважением,
Алексей.
Аватара пользователя
ИС-пытатель
Вымогатель припоя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

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

Сообщение ИС-пытатель »

Евстифеева себе скачайте. Там все описано.

FastPWM - это когда счетчик в одну сторону прогоняет и по пути изменяет ногу.

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

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

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

ИС-пытатель писал(а):Евстифеева себе скачайте. Там все описано.
FastPWM - это когда счетчик в одну сторону прогоняет и по пути изменяет ногу.


Это книга такая ? Обязательно скачаю.

А по fastpwm - строчку не подскажете ? По F1 в баскоме не нахожу описания этого режима. И не подскажете про прерывание Output_Compare_0A ? Как его реализовать ?
С уважением,
Алексей.
Аватара пользователя
ИС-пытатель
Вымогатель припоя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

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

Сообщение ИС-пытатель »

Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL. 2008 г.

Раздел про таймеры. Описание режимов работы. По сути, тот же даташит, только на русском. Да, при пользовании конкретной модели контроллера, сравнивайте с ДШ на данную модель. некоторые вещи изменились с тех пор.
AlekseyV
Грызет канифоль
Сообщения: 291
Зарегистрирован: Ср май 26, 2010 20:40:47

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

Сообщение AlekseyV »

Доброго времени, котаны!
Подскажите пожалуйста аналог входного регистра 74HC597, работать с 74HC164 по SPI не хочу (если я правильно понял, что он работает только по SPI). Задача стоит именно посадить без SPI.
Благодарю за любую информацию!
PS: 74HC597 использовал бы, но оптом в DIP-корпусе не могу найти.

UPD: Посмотрел в сторону 74LS374, удобное управление с ними можно реализовать - подключаются все регистры параллельно к МК 8pin к 8pin и другим регистром (например 74HC595) выбираем с какого из 74LS374 будем считывать или наоборот посылать данные.
Последний раз редактировалось AlekseyV Вт июн 03, 2014 19:17:10, всего редактировалось 2 раза.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

Доброго.

*** Удалено

Все, увидел что про входной регистр речь идет. Неправильно понял. :)
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

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

Сообщение pavel1979 »

Котаны,а как вывести число на жки в формате #,## ?чет и гугл не помог...
все,вопрос снят
.....
Dim W As Word
Dim Lin As String * 6
......
Lin = Str(w) 'âûâîäèì ðåçóëüòàò ïðåîáðàçîâàíèÿ íà ÆÊ
Lcd Format(lin , "0.00")
svetlika
Родился
Сообщения: 3
Зарегистрирован: Чт июн 05, 2014 11:55:41

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

Сообщение svetlika »

Доброго времени!
Подскажите в какое направление копать. Хочу реализовать диммер на 8 каналов на основе Atmega8, диммировать нужно 220В 2-5А.
Благодарю за внимание.
NucLeaR
Открыл глаза
Сообщения: 59
Зарегистрирован: Ср дек 22, 2010 14:59:37

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

Сообщение NucLeaR »

Присваиваю переменной типа Double значение 0,970134933 , а при просмотре содержимого переменной оказывается там число 970,134933. Так какую же переменную использовать для вычислений, если число меньше нуля и нужно много знаков после запятой?
Аватара пользователя
vem566
Друг Кота
Сообщения: 4732
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

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

Сообщение vem566 »

NucLeaR писал(а):Присваиваю переменной типа Double значение 0,970134933 , а при просмотре содержимого переменной оказывается там число 970,134933.

Так не бывает. Или не корректное присвоение, или где-то умножение на 1000, или не корректный просмотр.
NucLeaR
Открыл глаза
Сообщения: 59
Зарегистрирован: Ср дек 22, 2010 14:59:37

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

Сообщение NucLeaR »

Вот пример кода, B должно получиться 0,970134933, а на дисплее 970,134933. Да и если дальше считать то не то получается.

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

$regfile = "m8535.dat"
$crystal = 8000000
$baud = 9600

$hwstack = 32                                               ' default
$swstack = 8                                                ' default
$framesize = 64

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portd.5 , Rs = Portd.4       'пины LCD

Dim L1 As Double
Dim A As Double
Dim B As Double

Cursor Off
Cls

Do
L1 = 55.6128305556

A = L1 * 3.14
B = A / 180

Cls
Lcd A
Locate 2 , 1
Lcd B
Wait 1
Loop

End
Аватара пользователя
vem566
Друг Кота
Сообщения: 4732
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

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

Сообщение vem566 »

1. Запустить в отладчике.
2. Остановиться после арифметики.
3. Посмотреть значения переменных.
4. Убедиться в ошибке вывода на дисплей.
NucLeaR
Открыл глаза
Сообщения: 59
Зарегистрирован: Ср дек 22, 2010 14:59:37

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

Сообщение NucLeaR »

В симуляторе Bascom`а не запускается, в протеусе такая же фигня
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
NucLeaR
Открыл глаза
Сообщения: 59
Зарегистрирован: Ср дек 22, 2010 14:59:37

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

Сообщение NucLeaR »


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

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

Сообщение edm2007 »

Изображение
Вложения
отладка.png
(182.67 КБ) 1688 скачиваний
Последний раз редактировалось edm2007 Вт июн 10, 2014 17:27:53, всего редактировалось 1 раз.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Ответить

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