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

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

Сообщение vem566 »

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

Сообщение lionp »

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

Сообщение vem566 »

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

Сообщение lionp »

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

Сообщение 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
Откуда: Москва, СПб, Липецк, Рязань

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

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

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

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

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

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

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

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

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

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

Сообщение AlekseyV »

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

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

Сообщение edm2007 »

Доброго.

*** Удалено

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

Сообщение pavel1979 »

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

Сообщение svetlika »

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

Сообщение NucLeaR »

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

Сообщение vem566 »

NucLeaR писал(а):Присваиваю переменной типа Double значение 0,970134933 , а при просмотре содержимого переменной оказывается там число 970,134933.
Так не бывает. Или не корректное присвоение, или где-то умножение на 1000, или не корректный просмотр.
Открыл глаза
Сообщения: 59
Зарегистрирован: Ср дек 22, 2010 14:59:37

Сообщение 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
Друг Кота
Аватара пользователя
Сообщения: 4743
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

Сообщение vem566 »

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

Сообщение NucLeaR »

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

Сообщение edm2007 »

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

Сообщение NucLeaR »

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

Сообщение edm2007 »

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

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