Страница 34 из 304
Re: BASCOM AVR в вопросах и ответах
Добавлено: Сб май 08, 2010 19:19:59
Секретный кот
galex1981 писал(а):Это значит что приезжают к тебе на работу или домой (если кто то нажалуется) УБЭП и начинают проверять компы на наличие лицензионного ПО, и если таковое находится, то возбуждают на тебя уголовное дело
Деццкие страшилки
Во-первых, проверяют на наличие не лицензионного, а как раз пиратского ПО

А во-вторых, посмотрел бы я, как они приедут ко мне
домой (и потом ни с чем поедут обратно

) без постановления суда и
уже возбуждённого (интересно, на каких основаниях) дела. С работой конечно сложнее, но туда и не нужно таскать лишний софт....
Re: BASCOM AVR в вопросах и ответах
Добавлено: Сб май 08, 2010 19:46:11
dimon-790
Секретный кот , насколько я понял не пользуетесь "iram" компилятор при этом не матерится ? to: galex1981 круто ! однако у нас в деревне гадюкино всё немного проще...
Re: BASCOM AVR в вопросах и ответах
Добавлено: Сб май 08, 2010 22:22:05
Секретный кот
dimon-790
IRAM это указание разместить переменную во внутренних регистрах. Может приводить к непредсказуемым результатам. Я использую только контроллеры с SRAM и размещаю переменные только там (и в ERAM). Компилятор не ругается.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс май 09, 2010 08:31:21
dimon-790
чёт никак не пойму , как можно без iram обойтись в тини13-ой ? можно примерчик посмотреть ? если не жалко конечно.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс май 09, 2010 15:06:24
Intel_agent
Огромное спасибо
WildCat за перевод статей, вот по ним практически написал более половины необходимой прошивки, осталось немного, но вот сразу возник вопрос.
Код: Выделить всё
$regfile = "m8def.dat"
$crystal = 4000000
$hwstack = 32
$swstack = 10
$framesize = 40
Config portd.2 = Input
Config portd.3 = Input
Config Int0 = Falling
Const Debouncetime = 1
Dim zad_temp As Integer
Set portd.3
On Int0 _int0
zad_temp = 0
Enable Interrupts
Enable Int0
Do
Loop
_int0:
Waitms Debouncetime
If portd.2 = 0 Then
If portd.3 = 0 Then
zad_temp=zad_temp+5
Else
zad_temp=zad_temp-5
End if
End If
Gifr = 64
Return
End
Так вот собственно проблема, при вращении ручки энкодера в любую сторону, происходит например увеличение показаний в обоих случаях. Это-же не нормально
Перекопал все, ничего не смог найти, но при попытке прозвонки самого энкодера (если я правильно понимаю, выходы должны поочередно переключаться на землю) а получается так что они одновременно либо на земле. либо висят в воздухе. Так должно быть или энкодер дохлый?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс май 09, 2010 21:36:31
max50
Лично я делаю так:
Код: Выделить всё
$regfile = "m16def.dat" 'подключаем файл заголовков для контроллера ATmega16
$crystal = 8000000 'частота кварцевого генератора
$baud = 9600 'настройка скорости передачи RS-232
$hwstack = 32 'аппаратный стек
$swstack = 10 'програмный стек
$framesize = 40 'размер фрейма
'настраиваем ЖКИ
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
Config Lcd = 16 * 2 'ЖКИ 2 строки по 16 символов
Cursor Off 'выключить курсор
'VALCODER_________ выводы енкодера(валкодера)
Config Pind.3 = Input 'Valcoder A INT1
Valcod_a Alias Pind.3
Config Pina.4 = Input 'Valcoder B
Valcod_b Alias Pina.4
Set Portd.3
Set Porta.4
'объявляем переменные
Dim Valcod_param As Byte
Dim Valcod_cange As Bit
Config Int1 = Falling 'настраиваем внешнее прерывание INT1 на срабатывание при изменении из "1" в "0"
On Int1 Valcoder_change 'подпрограмма обработка прерывания Valcoder_change
Enable Int1 'разрешаем работу прерывания INT1
Enable Interrupts 'разрешаем глобальные прерывания
Cls 'очищаем экран ЖКИ
Locate 1 , 10 'задаем позицию курсора
Lcd "Enc=" ; Valcod_param 'выводим переменную изменения значения енкодера(валкодера)
Do 'начало цикла
If Valcod_cange = 1 Then 'если битовая переменна Valcod_cange = 1 (крутили енкодер(валкодер)
Locate 1 , 14 'то задаем позицию курсора
Lcd Valcod_param ; " " 'выводим переменную изменения значения енкодера(валкодера)
Reset Valcod_cange 'сбрасываем битовую переменную Valcod_cange
Sound Buzer , 10 , 500 'генерим звук
End If
Loop 'замыкаем цикл
Valcoder_change: 'подпрограмма обработки прерывания INT1
'*******************************************************************************
If Valcod_b = 1 Then 'если на линии B лог "1"
If Valcod_param <> 255 Then Incr Valcod_param 'то если переменная Valcod_param не достигла значения 255 увеличиваем ее на 1
Else 'если на линии B лог "0"
If Valcod_param <> 0 Then Decr Valcod_param 'то если переменная Valcod_param не достигла значения 0 уменьшаем ее на 1
End If
Set Valcod_cange 'выставляем битовую переменную Valcod_cange
Return 'возврат из подпрогрммы
End 'конец программы
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн май 10, 2010 06:31:05
Intel_agent
Хе... даже с кодом max50 идет изменение только в одну сторону. Склоняюсь к дерьмовому энкодеру (в магазин пришел, на месте подключил несколько различных энкодеров все ведут себя одинаково). Продавец говорит типа глюк прошивки... но что-то сомнения гложат...
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт май 11, 2010 12:10:29
kip96
Ещё вариант проверки энкодера
Код: Выделить всё
do
debounce Valcod_a, 0, Valcoder_change,sub
loop
.....
Valcoder_change:
if Valcod_b=0 then Valcod_cange=Valcod_cange+1
else
Valcod_cange=Valcod_cange-1
end if
return
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт май 11, 2010 15:45:16
Intel_agent
kip96, к сожалению видимо энкодер убитый, результат один
P.S. Заказал новый энкодер в Москве, придет, проверю снова и уже точно буду знать где косяк. аппаратный или программный.
Есть еще один вопрос. Если можно, пример кода на bascom'e для Atmega8 по реализации ШИМ'а, почитал тут соседние темы про него, но так и не понял что к чему.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт май 11, 2010 19:09:19
Секретный кот
dimon-790 писал(а):чёт никак не пойму , как можно без iram обойтись в тини13-ой ? можно примерчик посмотреть ? если не жалко конечно.
Не жалко конечно

. Мигание светодиодом, пачками по 5 импульсов, на tiny13:
Код: Выделить всё
$regfile = "ATtiny13.dat"
$crystal = 9600000
$hwstack = 16 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 20 ' default use 40 for the frame space
Dim Temp1 As Word 'временной интервал 1
Dim Temp2 As Word 'временной интервал 2
Dim I As Byte 'переменная цикла
Led Alias Portb.2 'светодиод
Ddrb = &B00000100 'направление линий порта B
Portb = &B00000000 'гашение порта B
Temp1 = 500 'короткая пауза
Temp2 = 4000 'длинная пауза
Do
For I = 1 To 5 'повторить 5 раз
Set Led 'зажечь светодиод
Waitms Temp1 'короткая пауза
Reset Led 'погасить светодиод
Waitms Temp1 'короткая пауза
Next I
Waitms Temp2 'длинная пауза
Loop
End
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 12, 2010 07:06:40
dimon-790
Спасибо
Секретный кот , я уже и не надеялся на ответ

. Насколько я понял вся фишка в этих трёх строках...?
$hwstack = 16
$swstack = 10
$framesize = 20
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 12, 2010 11:31:02
Секретный кот
dimon-790
Получается, что да – сам удивился

. Я сначала хотел запостить готовую прогу под tiny13, написанную в прошлом году, но с удивлением обнаружил, что в новой версии Барсика она не компилится!

С ошибкой Out of SRAM space! Это при том, что эта прога была благополучно скомпилирована и уже больше года трудится у заказчика

.
Естественно, сразу залез на форум разработчиков, и тут выясняется, что вся сумма hwstack+swstack+framesize берётся из SRAM, а следовательно при SRAM в 64 байта дефолтные значения стеков не оставляют от неё вообще ничего. Звучит логично, но тем более странно, почему эта прога нормально компилилась предыдущей версией Барсика (1.11.9.0 кажется).
Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт май 13, 2010 20:20:59
dimon-790
Мда,похоже фирма начала халтурить

. У меня тут ещё вопросик: как записать бит в еепром ?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн май 17, 2010 11:12:29
dhouse
Подскажите, как настроить BASCOM, чтобы он работал с программатором AVR910? CvAVR с ним нормально работает, а в BASCOM выставил и номер порта, и модель программатора, но даже считать чип не выходит.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт май 18, 2010 13:29:56
Radan
Нужно прочитать программой контроллера Lock bit для Меги48. Кто нибудь сталкивался с подобным?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Сб май 22, 2010 21:24:07
dimon-790
dhouse писал(а):Подскажите, как настроить BASCOM, чтобы он работал с программатором AVR910? CvAVR с ним нормально работает, а в BASCOM выставил и номер порта, и модель программатора, но даже считать чип не выходит.
а скорость порта выставить не забыл ? , у меня работал вроде без особых проблем . Единственная заморочка с перемычкой , на самом прогрраматоре которая переключает скорость, на повышенной скороси мегу 8-ю не хотел определять.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Сб май 22, 2010 21:29:45
dhouse
Пробовал устанавливать скорость порта от 9600 до 115200. Результат одинаковый...
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн май 24, 2010 14:27:34
Paha100
Подскажите как усреднить показание АЦП 10 бит без потери общей скорости выполнения программы?
Т.е. имеется мультиплексор с 16 входящими каналами и 1 выходящим на АЦП меги32, Перебирая каналы считываем напряжения (всего 16) с различных датчиков.
Датчики разные, как усреднить значения?
Цикл когда берется среднее из 8(допустим) измерений одного канала сильно замедляет софт.
16 каналов да по 8 измерений на каждый....
Павел
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт май 25, 2010 08:56:53
dimon-790
На днях начитавшись арабских книжек , решил сваять и себе небольшую отладочную платку. Может кого заинтересует идея и поможет мне добить её до хепи энда !!! в принципе плата уже разведена нужно только проверить на ошибки ...
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вт май 25, 2010 12:03:27
dimon-790
переконвертил в png на случай если нет орлика.