BASCOM AVR в вопросах и ответах
SOUND
Action
Sends pulses to a port pin.
Syntax
SOUND pin, duration, pulses
Remarks
Pin
Any I/O pin such as PORTB.0 etc.
Duration
The number of pulses to send. Byte, integer/word or constant.
Pulses
The time the pin is pulled low and high.
This is the value for a loop counter.
When you connect a speaker or a buzzer to a port pin (see hardware) , you can use the SOUND statement to generate some tones.
The port pin is switched high and low for pulses times.
This loop is executed duration times.
The SOUND statement is not intended to generate accurate frequencies. Use a TIMER to do that.
See also
NONE
Example
'----------
'name : sound.bas
'copyright : (c) 1995-2005, MCS Electronics
'purpose : demo : SOUND
'micro : Mega48
'suited for demo : yes
'commercial addon needed : no
'----------
$regfile = "m48def.dat" ' specify the used micro
$crystal = 4000000 ' used crystal frequency
$baud = 19200 ' use baud rate
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
Dim Pulses As Word , Periods As Word
Pulses = 65535 : Periods = 10000 'set variables
Speaker Alias Portb.1 'define port pin
Sound Speaker , Pulses , Periods 'make some noice
'note that pulses and periods must have a high value for high XTALS
'sound is only intended to make some noise!
'pulses range from 1-65535
'periods range from 1-65535
End
Упс! Я ОЧЕНЬ разочарован в способностях автора данного поста. По крайней мере, можно было пустые строки убрать...Недоумевающий Сэр Мурр
Action
Sends pulses to a port pin.
Syntax
SOUND pin, duration, pulses
Remarks
Pin
Any I/O pin such as PORTB.0 etc.
Duration
The number of pulses to send. Byte, integer/word or constant.
Pulses
The time the pin is pulled low and high.
This is the value for a loop counter.
When you connect a speaker or a buzzer to a port pin (see hardware) , you can use the SOUND statement to generate some tones.
The port pin is switched high and low for pulses times.
This loop is executed duration times.
The SOUND statement is not intended to generate accurate frequencies. Use a TIMER to do that.
See also
NONE
Example
'----------
'name : sound.bas
'copyright : (c) 1995-2005, MCS Electronics
'purpose : demo : SOUND
'micro : Mega48
'suited for demo : yes
'commercial addon needed : no
'----------
$regfile = "m48def.dat" ' specify the used micro
$crystal = 4000000 ' used crystal frequency
$baud = 19200 ' use baud rate
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
Dim Pulses As Word , Periods As Word
Pulses = 65535 : Periods = 10000 'set variables
Speaker Alias Portb.1 'define port pin
Sound Speaker , Pulses , Periods 'make some noice
'note that pulses and periods must have a high value for high XTALS
'sound is only intended to make some noise!
'pulses range from 1-65535
'periods range from 1-65535
End
Упс! Я ОЧЕНЬ разочарован в способностях автора данного поста. По крайней мере, можно было пустые строки убрать...Недоумевающий Сэр Мурр
- sinobi
- Встал на лапы
- Сообщения: 104
- Зарегистрирован: Сб фев 24, 2007 15:49:35
- Контактная информация:
SAU не мог бы ты написать как работать по i2с,да и с другими портами, интересует такие стороны как программы таймеров и частотомеров на барсике..Ждём продолжение с нетерпением.Побаловался в симуляторе с прогой и второго доковского файла-прикольно,а как можно ещё другого типа индикаторы прикручивать?Ивиняюсь,если я слишком разогнался.
sinobi писал(а):SAU не мог бы ты написать как работать по i2с,да и с другими портами, интересует такие стороны как программы таймеров и частотомеров на барсике..Ждём продолжение с нетерпением.Побаловался в симуляторе с прогой и второго доковского файла-прикольно,а как можно ещё другого типа индикаторы прикручивать?Ивиняюсь,если я слишком разогнался.
Частотомер писать на бейсике бессмысленно.Его нужно писать на асме.
Тем более, что у АВР синхронные счетчики и больше 1 Мгц ты не измеришь.
Конфигурирование портов очень простое - пишешь PortB=Output - и он настроен на выход, пишешь PortB=Input и он настроен на вход.Также можно настривать и отдельные пины.
Честно признавшись - лучше чем Кулиш я вряд ли напишу.Да и огромное количество апноутов могут помочь.
Если будет время - нарисую схему какой-нибудь охранной сигнализации, скажем на меге8, и попробуем разобрать.Но опять же - когда будет свободное время.
ЗЫ.Bascom , микроконтроллеры , ВЧ техника это всего лишь хобби, которому я отдаю свободное время когда оно появляется, к сожалению не очень часто.
sinobi писал(а):а как можно ещё другого типа индикаторы прикручивать?Ивиняюсь,если я слишком разогнался.
Вот-тут есть кое какие библиотеки для графических дисплеев: http://ledeffects.net/pages/?id=12
Но симулятора под них в Барсике нет.
Успехов!
Часть третья - Bascom и DS18B20.
Прошу прощения у Кота за мой пост с кодом.Обещаю больше так не делать.
Прошу прощения у Кота за мой пост с кодом.Обещаю больше так не делать.
- Вложения
-
- Bascom AVR-3.zip
- (52.63 КБ) 2988 скачиваний
- WildCat
- Собутыльник Сэра Мурра
- Сообщения: 2918
- Зарегистрирован: Вт янв 10, 2006 00:26:45
- Откуда: Челябинск
Замечание по III части.
SAU! ты жаловался в статье, что нет оператора сдвига битов в байте. Есть только функция rotate, но она перемещает бит с конца в начало и наоборот. Так вот, необходимый тебе оператор называется Shift и пример его использования находится в файле rotate.bas
Вот результат. А если бы ты сделал это функцией rotate, то значение переменной было бы 1.
SAU! ты жаловался в статье, что нет оператора сдвига битов в байте. Есть только функция rotate, но она перемещает бит с конца в начало и наоборот. Так вот, необходимый тебе оператор называется Shift и пример его использования находится в файле rotate.bas
Код: Выделить всё
B = 128
Shift B , Left
Print B
'B should be 0 nowВот результат. А если бы ты сделал это функцией rotate, то значение переменной было бы 1.
-
Radan
- Мучитель микросхем
- Сообщения: 465
- Зарегистрирован: Ср июн 21, 2006 08:24:32
- Откуда: Лисичанск
- Контактная информация:
Мои 5 копееек...Сенсор на светодиоде. Кто повторит, отпишитесь.
- Вложения
-
- led_sensor.zip
- (4.37 КБ) 2016 скачиваний
- Пожиратель AVR
- Встал на лапы
- Сообщения: 117
- Зарегистрирован: Чт янв 11, 2007 12:14:33
- Контактная информация:
Кто могбы помоч с компиляцыей програмы ? Я больше уделяю написанию на си ну тут понадобилась скомпилировать программу на бейсике.Если кто возмется пожалуста подправте контролер с ATMEGA32 на ATMEGA128
- Вложения
-
- Osziloskop-S65_LS020-01_bas.txt
- (18.93 КБ) 1483 скачивания
- tych
- Э...
- Сообщения: 2792
- Зарегистрирован: Ср апр 04, 2007 08:39:14
- Откуда: Москва
- Контактная информация:
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
-
Radan
- Мучитель микросхем
- Сообщения: 465
- Зарегистрирован: Ср июн 21, 2006 08:24:32
- Откуда: Лисичанск
- Контактная информация:
Пожирателю AVR - скомпилил. Обращайся на http://bascomavr.3bb.ru/, там всегда помогут.
- Вложения
-
- oszill.zip
- (16.2 КБ) 1082 скачивания
- Пожиратель AVR
- Встал на лапы
- Сообщения: 117
- Зарегистрирован: Чт янв 11, 2007 12:14:33
- Контактная информация:
-
Radan
- Мучитель микросхем
- Сообщения: 465
- Зарегистрирован: Ср июн 21, 2006 08:24:32
- Откуда: Лисичанск
- Контактная информация:
Кому надо программу для организации звука с подробными комментариями и кучей мелодий - http://ledeffects.net/data/bascom/SOUND_BASCOM.zip
