Прошу помощи с ATmega8515

Здесь вопросы новичков
Ответить
Intron
Сообщения: 7
Зарегистрирован: 06 апр 2010, 18:35

Прошу помощи с ATmega8515

Сообщение Intron » 06 апр 2010, 18:44

Помогите пожалуйста написать код в AVR studio для ATmega8515

Есть 7 кнопок данных и одна кнопка ввода.
Вывести через порт D число, находящееся в EEPROM по адресу, определяемому нажатыми кнопками данных в тот момент, когда была нажата кнопка ввода.

Очень надеюсь,что кто-нибудь поможет.Заранее спасибо.

Аватара пользователя
Radioded
Site Admin
Сообщения: 185
Зарегистрирован: 07 ноя 2008, 02:47
Откуда: Москва
Контактная информация:

Re: Прошу помощи с ATmega8515

Сообщение Radioded » 06 апр 2010, 22:37

Постараюсь помочь, главное не забыть. ;)
По EEPROM можете глянуть статейку: http://radioded.ru/content/view/125/44/
Исходник из этой статьи для вашей задачи нужно чуть-чуть подправить.

Intron
Сообщения: 7
Зарегистрирован: 06 апр 2010, 18:35

Re: Прошу помощи с ATmega8515

Сообщение Intron » 06 апр 2010, 23:06

Буду очень благодарен!
Спасибо за статейку!

Аватара пользователя
Radioded
Site Admin
Сообщения: 185
Зарегистрирован: 07 ноя 2008, 02:47
Откуда: Москва
Контактная информация:

Re: Прошу помощи с ATmega8515

Сообщение Radioded » 07 апр 2010, 00:31

Вспомнил молодость :) . Ностальгия по ассемблеру...
Симулировал в AVR Sudio - все работает. В теории все ОК, как на практике будет не знаю т.к. нет фильтрации дребезга контактов запускающей кнопки.

Схема подключения кнопок и диодов:
atmega8515.jpg
Схема подключения кнопок и светодиодов к ATmega8515
Проект в AVR Studio:
eeprom_8515_asm.rar
проект в AVR Studio
(5.26 КБ) 551 скачивание
Вот исходник:

Код: Выделить всё

; http://radioded.ru/forum/viewtopic.php?f=4&t=446
; считывание адреса ячейки памяти EEPROM из порта B
; значение, которое хранится в ячейке памяти выводится в порт D

; кнопка запуска чтения - PE.0, нет фильтрация дребезга контактов

.include "m8515def.inc"

.def temp = R16

rjmp reset

.org 0x0d 
rjmp button





reset:

	ldi temp, LOW(RAMEND)
	out SPL, temp

	ldi temp, HIGH(RAMEND)
	out SPL, temp

    ldi temp, 0xFF
    out DDRD, temp			; все ноги порта - выходы

    ldi temp, 0xFF
	out PORTB, temp			; подтяжка пинов к питанию


    ldi temp, (1<<5)
	out GICR, temp

    sei
	       
loop:
    nop
    rjmp    loop			; бесконечный цикл
   


button:

    in   temp, PINB               ; считываем уровни с порта B
    out  EEARL, temp            ; запись адреса откуда будем читать
    sbi  EECR, EERE				; считываем из памяти EEPROM
    nop
    in  temp, EEDR				; копируем в регистр

    out PORTD, temp				; зажигаем светодиоды

reti

Intron
Сообщения: 7
Зарегистрирован: 06 апр 2010, 18:35

Re: Прошу помощи с ATmega8515

Сообщение Intron » 07 апр 2010, 19:27

Спасибо огромное за проделанный труд!Очень помогли! ;)

Аватара пользователя
Radioded
Site Admin
Сообщения: 185
Зарегистрирован: 07 ноя 2008, 02:47
Откуда: Москва
Контактная информация:

Re: Прошу помощи с ATmega8515

Сообщение Radioded » 08 апр 2010, 19:12

Рад помочь ;). На днях у меня появилась отладочная плата STK-500, так там как раз стоит ATmega8515 - с ней побалуюсь, протестирую код, что написал.

Intron
Сообщения: 7
Зарегистрирован: 06 апр 2010, 18:35

Re: Прошу помощи с ATmega8515

Сообщение Intron » 20 апр 2010, 17:23

Помогите написать код для такого задания:
По линейке светодиодов на плате должен перемещаться горящий светодиод. Он начинает свое движение с n-ной позиции, которая определяется нажатой кнопкой, и заканчивает свое движение в крайне правой позиции, после этого процесс повторяется. Время свечения в каждой позиции определяется прерыванием по переполнению Т\С1.

Не могу разобраться с прерыванием.
Заранее спасибо

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей