инициализация периферии ядра AVR - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум Picbasic.ru » Альтернативные языки и родственные души » Bascom AVR » инициализация периферии ядра AVR (присоединяйтесь)
инициализация периферии ядра AVR
deskjet Дата: Чт, 12.08.2010, 18:50  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 151
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

Мультиплатформенность меня не раз выручала: то нет нужного ПИКа под рукой, то заимствованный проект разработан под АВР.
Хочешь - не хочешь, а использовать АВРы приходится постоянно. По этому есть необходимость во вникании в устройство этого контроллера.
С ПИКами все четко, прямолинейно и понятно, с АВРами же приходится повозится (далеко не все с ними понятно и очевидно).
Например, неделю не мог запустить АЦП (на запуск АЦП ПИКа, когда я только начинал его изучать, у меня ушло 30 минут).
Поэтому предлагаю выкладывать свои наработки на этом форуме.

Пример 1. Инициализация АЦП АВР (AVRSimulatorIDE):

DDRB = %11111111

l0001:

ASM: ldi R16,%01000000
ASM: out ADMUX,R16
ASM: ldi R16,%10000110
ASM: out ADCSRA,R16
ASM: sbi ADCSRA,ADSC

l0002:
ASM: sbis ADCSRA,ADIF
ASM: rjmp l0002

ASM: in R16,ADCL
ASM: in R17,ADCH

ASM: OUT portb,R16 ' младшие 8 бит результата вывести в portb

Goto l0001



За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430
ЯНДЕКС Дата: 12.08.2010
retas Дата: Пт, 13.08.2010, 00:27  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 462
Репутация: 10   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

Если кому то охота просто повторить проект сделанный на AVR, то для его прошивки годится и PICKIT2.

Новый подход к питанию потребителей переменного тока: http://ekolaif.ucoz.ru
777grey Дата: Сб, 14.08.2010, 06:32  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Новенький
Сообщений: 16
Репутация: 0   ±
Замечания:   ±
На сайте с 22.07.2008

Статус: Offline

retas, а можно поточнее, как PICKITом AVRки прошивать? а отладка возможна?
retas Дата: Сб, 14.08.2010, 19:01  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 462
Репутация: 10   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

Эта тема проходила на Казусе - тонкостей не знаю
http://kazus.ru/forums/showthread.php?t=16558&highlight=pickit2


Новый подход к питанию потребителей переменного тока: http://ekolaif.ucoz.ru
deskjet Дата: Сб, 16.10.2010, 11:28  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 151
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

Пример 1.2. Инициализация АЦП АВР (AVRSimulatorIDE):

DDRB = %11111111

l0001:
ADMUX = %01000000
ADCSRA = %10000110
ADCSRA.6 = 1 'старт АЦП

l0002:
If ADCSRA.4 = 0 Then
Goto l0002
Endif

ASM: in R16,ADCL
ASM: in R17,ADCH
PORTB = R16 ' младшие 8 бит результата вывести в portb

Goto l0001

Пример работает для atmega8,16,32,64, для atmega48,88 не работает, там нужен другой код ;-)))

Добавлено (16.10.2010, 11.28.30)
---------------------------------------------
Пример 2.1. Инициализация АЦП atmega48 (AVRSimulatorIDE)

Code


DDRB = %11111111

l0001:
ADMUX = %01000000
ADCSRA = %10000110
ADCSRA.6 = 1  'старт АЦП

l0002:
If ADCSRA.4 = 0 Then
Goto l0002
Endif

'ASM:        in R17,ADCL
'ASM:        in R18,ADCH
R17 = ADCL
R18 = ADCH

PORTB = R17  'младшие 8 бит результата вывести в portb

Goto l0001

Как видно из примера изменение заключается в использовании пары рабочих регистров R17,R18 вместо R16,R17 так как в связи
с переделками Atmel решила переработать адресацию регистров


За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430

Сообщение отредактировал deskjet - Сб, 16.10.2010, 13:32
QWERTY Дата: Вс, 24.10.2010, 21:22  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 74
Репутация: 0   ±
Замечания:   ±
На сайте с 11.05.2008

Статус: Offline

Может не в тему вопрос, но уже не знаю у кого спросить.
Где приобрести набор для сборки PICKIT2 или готовый аппарат???
Очень нужно.....
Форум Picbasic.ru » Альтернативные языки и родственные души » Bascom AVR » инициализация периферии ядра AVR (присоединяйтесь)
Страница 1 из 11
Поиск: