BASCOM AVR в вопросах и ответах
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Про выделение, компилятор баском выделяет текст разными цветами, это вы знаете.Так вот, к примеру PORTB.0 будет написано красным и автоматически большими буквами,так вот,компилятор конфигурирование это игнорирует и пишет черными буквами этот порт и естественно при компиляции он не понимает что от него хотят.
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
осторожно! леоныч!!! писал(а):компилятор конфигурирование это игнорирует и пишет черными буквами этот порт
Сейчас вставил первый попавшийся код назначил порт А на выход всё компилируется?
Код: Выделить всё
$regfile = "ATtiny2313.DAT"
$crystal = 1000000
Config Portb.0 = Input
Config Porta = Output
Config Aci = On , Compare = On , Trigger = Rising
On Aci Hi_signal
Enable Aci
Enable Interrupts
Do
Portd.0 = Acsr.aco
Loop
Hi_signal:
Portd.0 = Acsr.aco
ReturnRe: BASCOM AVR в вопросах и ответах
похоже конфигурационный файл от старой AT90S2313 (2313def.dat) использовался.
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Всем привет! Подскажите кто знает,можно ли организовать на мк avr генератор? Допустим до 4мгц. Чтоб можно было менять частоту с шагом в 5кгц? При этом не применяя синтезатор частоты итд итп?
- zero648
- Вымогатель припоя
- Сообщения: 650
- Зарегистрирован: Пн июн 18, 2012 12:01:04
- Откуда: Челябинская область, Копейск
Re: BASCOM AVR в вопросах и ответах
Думаю можно сделать из тиньки 85й или 861й, у них есть встроенный генератор 64МГц
Код: Выделить всё
The Timer/Counter1 features a high resolution and a high accuracy usage with the lower prescaling
opportunities. It can also support two accurate, high speed, 8-bit Pulse Width Modulators
using clock speeds up to 64 MHz ( or 32 MHz in Low Speed Mode).-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
У меня только 13 есть. Так что не вариант...
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
Re: BASCOM AVR в вопросах и ответах
Генератор чего?) Идей? :-D just joking)
чем ближе частота к граничной, на которой работает контроллер, тем больше погрешность.
Весь разговор ниже про прямоугольные импульсы.
Например, если использовать режим FastPWM таймера в ATTiny13, то можно получить максимальную частоту = Fcpu/2. Следующая за ней возможная частота = Fcpu/3, следующая = Fcpu/4... и т.д.
следовательно при частоте Fcpu 20 МГц, максимально можно получить 10 МГц, далее 6,67 МГц, далее 5 МГц, 4 МГц, 3,34 МГц, 2,86 МГц, 2,5 МГц..... ну и т.д.
чем ближе частота к граничной, на которой работает контроллер, тем больше погрешность.
Весь разговор ниже про прямоугольные импульсы.
Например, если использовать режим FastPWM таймера в ATTiny13, то можно получить максимальную частоту = Fcpu/2. Следующая за ней возможная частота = Fcpu/3, следующая = Fcpu/4... и т.д.
следовательно при частоте Fcpu 20 МГц, максимально можно получить 10 МГц, далее 6,67 МГц, далее 5 МГц, 4 МГц, 3,34 МГц, 2,86 МГц, 2,5 МГц..... ну и т.д.
Ставим плюсы: )
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Ахахах))) Блин ни как не получается то что нужно))) Блин эти контроллеры такие контроллеры))) Блин я хотел попробовать простой функциональный генератор запилить)
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
осторожно! леоныч!!! писал(а):Ахахах)))
Хватит стонать да охать, конкретно чего не получается.....старость не радость.
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Да просто не могу найти пример как реализовать генератор. А стонать и охать это я не понимать.
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
осторожно! леоныч!!! писал(а):как реализовать генератор.
Могу предложить от 1 до 20 КГц, с шагом в 1Гц http://www.8051projects.net/download-d2 ... oject.html
-
осторожно! леоныч!!!
- Сверлит текстолит когтями
- Сообщения: 1156
- Зарегистрирован: Вт дек 09, 2008 20:31:56
Re: BASCOM AVR в вопросах и ответах
Спасибо! Будем изучать)
Re: BASCOM AVR в вопросах и ответах
Кто-нибудь пробовал на баскоме писать программу для приемника TEA5767? Интерисует реализация режима сканирования частоты. Мой код не работает.
Заодно детский вопрос по баскому. Как проверить правильно значение бита в некотором байте?
IF Buffer.7=1 THEEN ....
Правильная ли такая запись для проверки состояния 7 бита в переменной buffer?
Заодно детский вопрос по баскому. Как проверить правильно значение бита в некотором байте?
IF Buffer.7=1 THEEN ....
Правильная ли такая запись для проверки состояния 7 бита в переменной buffer?
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- max50
- Мучитель микросхем
- Сообщения: 497
- Зарегистрирован: Ср дек 10, 2008 21:24:28
- Откуда: Алтайский край, Барнаул
Re: BASCOM AVR в вопросах и ответах
serg_svd писал(а):Заодно детский вопрос по баскому. Как проверить правильно значение бита в некотором байте? IF Buffer.7=1 THEEN ....Правильная ли такая запись для проверки состояния 7 бита в переменной buffer?
Я так же делал, все работало.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Re: BASCOM AVR в вопросах и ответах
max50 писал(а):Я так же делал, все работало.
Значит у меня что-то с кодом сканирования для TEA5767 не так
Ошибится вроде негде с первого взгляда, но есть существенное НО! Китайцы удешевили платку приемника и влепили кварц 32,768 кГц. Из-за этого сетки 100 кГц ровной не получается
Потому как не ловит у меня программа этот бит, а значит и точной настройки нет
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Re: BASCOM AVR в вопросах и ответах
а где код ?serg_svd писал(а):Значит у меня что-то с кодом сканирования для TEA5767 не так
Re: BASCOM AVR в вопросах и ответах
Код смогу только вечером выложить.
Пока на словах распишу алгоритм автонастройки
Пока у меня алгоритм такой:
1) есть начальное значение частоты. к нему прибавляем шаг сетки 100 кГц. считаем PLL и загоняем в микросхему с установками 3го бита &B11110000. То есть сканирование вверх, макс чутье ADC.
бит сканирования и мьюта ставлю в 1.
2) выжидаю паузу 100 мс (пробовал от 10 до 100. пока процесс отладки оставил 100 мс. Скорость поиска пока не важна)
3) Считываю данные из микросхемы и проверяю состояние 7 бита в 1 байте считанных данных. Он и является битом READY
4) если он равен 0, то прибавляем к частоте 100 кГц, считаем PLL и дальше по циклу, пока не будет READY=1
Пока на словах распишу алгоритм автонастройки
Пока у меня алгоритм такой:
1) есть начальное значение частоты. к нему прибавляем шаг сетки 100 кГц. считаем PLL и загоняем в микросхему с установками 3го бита &B11110000. То есть сканирование вверх, макс чутье ADC.
бит сканирования и мьюта ставлю в 1.
2) выжидаю паузу 100 мс (пробовал от 10 до 100. пока процесс отладки оставил 100 мс. Скорость поиска пока не важна)
3) Считываю данные из микросхемы и проверяю состояние 7 бита в 1 байте считанных данных. Он и является битом READY
4) если он равен 0, то прибавляем к частоте 100 кГц, считаем PLL и дальше по циклу, пока не будет READY=1
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Re: BASCOM AVR в вопросах и ответах
Вот код. Урезанная версия. Без индикации
Фото модуля прикладываю. На плате маркировка pl102bc-n
Спойлер
Код: Выделить всё
$regfile = "m8def.dat"
$crystal = 4000000 ' 4MHz
Dim Tmp_w As Word
Dim Freq As Word ' Частота
Dim Pll As Long
Dim Ready As Bit
Dim Mute As Bit
Dim Search As Bit
Dim Sud As Bit ' Search Up/Down bit (1/0)
Dim 1st As Byte
Dim 2nd As Byte
Dim 3rd As Byte
Dim 4th As Byte
Dim 5th As Byte
Dim I As Byte
Dim Buffer(5) As Byte
Const Freq_min = 875 ' Нижняя граница диапазона 87,5 МГц
Const Freq_max = 1080 ' Верхняя граница диапазона 108,0 МГц
Const 5767_w = &HC0 ' Запись в TEA5767
Const 5767_r = &HC1 ' Чтение
Ddrb = &B11111111 ' Все на выход
Ddrc = &B11111111 ' Все на выход
Ddrd = &B00000000 ' Все на вход
Bt_scan Alias Pind.3
Config Debounce = 25 ' Антидребезг. По умолчанию 25мс
Config Sda = Portc.4
Config Scl = Portc.5
I2cinit
Freq = Freq_min
Gosub Ras_pll
Mute = 0
Search = 0
3rd = &B00010000
4th = &B00010010
5th = 0
Gosub 5767_write
Do
Debounce Bt_scan , 0 , Scan_freq , Sub
Loop
Scan_freq:
Ready = 0
Mute = 1
Search = 1
3rd = &B11110000 ' Search Up, high; level ADC output = 10, stereo ON
4th = &B00010010
5th = 0
While Ready = 0
Incr Freq
If Freq > Freq_max Then
Freq = Freq_max
End If
Gosub Ras_pll
Gosub 5767_write
Waitms 100
Gosub 5767_ready
If Buffer(1).7 = 1 Then Ready = 1 ' Проверяем бит READY
Waitms 100
Wend
Mute = 0
Search = 0
3rd = &B00010000 ' stereo ON
4th = &B00010010
5th = 0
Gosub 5767_write
Return
Ras_pll:
Pll = Freq : Pll = Pll * 100
Pll = Pll + 225
Pll = Pll * 4000
Pll = Pll / 32768
Tmp_w = Pll
1st = High(tmp_w)
2nd = Low(tmp_w)
Return
5767_write:
If Search = 0 Then
Reset 1st.6 ' SM=OFF (Search Mode)
Elseif Search = 1 Then
Set 1st.6 ' SM=ON (Search Mode)
End If
If Mute = 0 Then
Reset 1st.7 ' Mute OFF
Elseif Mute = 1 Then
Set 1st.7 ' Mute ON
End If
I2cstart
I2cwbyte 5767_w
I2cwbyte 1st
I2cwbyte 2nd
I2cwbyte 3rd
I2cwbyte 4th
I2cwbyte 5th
I2cstop
Return
5767_ready:
I2cstart
I2cwbyte 5767_r
For I = 1 To 5
I2crbyte Buffer(i)
Waitms 10
Next
I2cstop
Return
End 'end programФото модуля прикладываю. На плате маркировка pl102bc-n
- Вложения
-
- module.JPG
- (21.51 КБ) 637 скачиваний
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Re: BASCOM AVR в вопросах и ответах
Нашел ошибку в коде. Неправильно написал строчку считывания I2C.
надо так
I2crbyte Buffer(i) , Ack
Но при чувствительности ADC=5 что-то сильное чутье к шумам. Тут 2 варианта: 1) я опять где-то в коде накосячил; 2) у меня все на макетке собрано и возможно на проводах наводки
надо так
I2crbyte Buffer(i) , Ack
Но при чувствительности ADC=5 что-то сильное чутье к шумам. Тут 2 варианта: 1) я опять где-то в коде накосячил; 2) у меня все на макетке собрано и возможно на проводах наводки
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Re: BASCOM AVR в вопросах и ответах
$regfile = "m8def.dat"
$Crystal=4000000
$hwstack=40
$swstack=50
$framesize = 50
Dim A As Byte
Config Portb = Output
Config Pinb.0 = Input
Do
Debounce Pinb.0 , 0 , En , Sub
Loop
A = 5
Incr A
A = Portb
En:
Toggle A
Return
End
Не получается с одной кнопки переключать поочередно каждый светодиод (светодиодов 5). Программу написал но она упорно не хочет работать. Пробовал оператор For .... Next там то же выползали ошибки Подскажите пожалуйста, что не так делаю, я только учусь...
$Crystal=4000000
$hwstack=40
$swstack=50
$framesize = 50
Dim A As Byte
Config Portb = Output
Config Pinb.0 = Input
Do
Debounce Pinb.0 , 0 , En , Sub
Loop
A = 5
Incr A
A = Portb
En:
Toggle A
Return
End
Не получается с одной кнопки переключать поочередно каждый светодиод (светодиодов 5). Программу написал но она упорно не хочет работать. Пробовал оператор For .... Next там то же выползали ошибки Подскажите пожалуйста, что не так делаю, я только учусь...
