Страница 1 из 1

AT90USB1287 есть несколько вопросов

Добавлено: Вт ноя 04, 2008 18:25:19
Spy1313
Начал работу с AT90USB1287 и сразу возникли проблемы:
Первая проблема сторожевой таймер.Судя по даташиту настройка и запуск такие:

WDT_Prescaler_Change:
; Turn off global interrupt
cli
; Reset Watchdog Timer
wdr
; Start timed sequence
in r16, WDTCSR
ori r16, (1<<WDCE) | (1<<WDE)
out WDTCSR, r16
; -- Got four cycles to set the new values
;from here -
; Set new prescaler(time-out) value=64K cycles (~0.5 s)

ldi r16, (1<<WDE) | (1<<WDP2) | (1<<WDP0)
out WDTCSR, r16
; -- Finished setting new values, used 2 cycles -
; Turn on global interrupt
sei
ret

AVR Studio сразу начал ругаться на каждую строчку. Я немного исправил код получилось вот это:

;******** Настройка сторожевого таймера на 8с ********

Watchdog:
push t0
cli
wdr
; in t0,WDTCSR

ldi t0,(1<<WDCE)|(1<<WDE)
sts WDTCSR,t0

ldi t0,(1<<WDE)|(0b1001<<WDP0)
sts WDTCSR,t0

sei
pop t0
ret

А здесь in t0,WDTCSR так и осталась ошибка. Зачем нужна эта строка и что с ней делать не знаю. Может кто посоветует.

Ещё вопрос может кто работал с USB на этом кристале, нужна инфа как писать и начём отлаживать или хотя бы готовые проги и исходники
в качестве примеров. Буду признателен всем кто откликнется. Заранее СПАСИБО!!!

Добавлено: Вт ноя 04, 2008 20:55:20
pirotehnick
Я не работал с этим контроллером. Однако совету тебе сначала скачать datasheet и посмотреть список его регистров.

А заголовочный файл для этой модели ты подключил?
Что за регистр t0? Как я понимаю ты просто переопределил его символическое выражение, типа .def t0 = r16?

Добавлено: Вт ноя 04, 2008 21:09:56
pirotehnick
Я кажется понял проблему. Если ты посмотришь datasheet, то увидишь что регистр WDTCSR находится за адресом 0x5f, и, вероятно, уже не может использоваться в инструкциях in и out и необходимо работать с ним как с байтом в ОЗУ.

вот код:

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

.include "usb1287def.inc"



WDT_Prescaler_Change: 
; Turn off global interrupt 
cli 
; Reset Watchdog Timer 
wdr 
; Start timed sequence 
lds r16, WDTCSR 
ori r16, (1<<WDCE) | (1<<WDE) 
sts WDTCSR, r16 
; -- Got four cycles to set the new values 
;from here - 
; Set new prescaler(time-out) value=64K cycles (~0.5 s) 

ldi r16, (1<<WDE) | (1<<WDP2) | (1<<WDP0) 
sts WDTCSR, r16 
; -- Finished setting new values, used 2 cycles - 
; Turn on global interrupt 
sei 
ret


Добавлено: Вт ноя 04, 2008 21:27:57
Spy1313
pirotehnick писал(а):Я не работал с этим контроллером. Однако совету тебе сначала скачать datasheet и посмотреть список его регистров.
даташит давно скачен. я певый кусок и приводил из даташита
pirotehnick писал(а):А заголовочный файл для этой модели ты подключил?
Что за регистр t0? Как я понимаю ты просто переопределил его символическое выражение, типа .def t0 = r16?
да подключил.ты правильно понял.

Добавлено: Вт ноя 04, 2008 21:30:49
Spy1313
поменял команду in на lds всё запахало как часы. Спасибоо что откликнулся.

Добавлено: Вт ноя 04, 2008 21:49:05
Spy1313
Ещё есть вопрос. К этому зверю надо подключить клаву 6X4 (24 кнопки), смотрел пример в обучалке по динамическому опросу, попытался переделать под свои нужды, но ничего не получается. Две недели маюсь уже.

Может кто поможет. 6 выводов на одном порту допустим F ,а 4 на другом допустим B.

Что нужно исправить

Добавлено: Вт ноя 04, 2008 22:43:57
pirotehnick
Я бы рад помочь, но не я автор этой статьи, и на разборку с железом и софтом уйдёт у меня гораздо больше времени, чем на создание своего девайса и написание своей проги.

Честно говоря я вообщее не вижу здесь проблем. Гораздо легче будет реализовать свой принцип.

Если очень надо могу написать тебе прогу.

Добавлено: Ср ноя 05, 2008 14:56:07
Spy1313
если не сложно напиши. буду очень признателен.

Добавлено: Чт ноя 06, 2008 21:09:12
pirotehnick
вот только что сеть подрубил.....

ладно, напишу.

Добавлено: Чт ноя 06, 2008 23:42:18
pirotehnick
вот держи...
Это конечно не полность рабочая прога, заточенная под какой-то конкретый дисплей, а просто поданная идея.

Добавлено: Пн ноя 10, 2008 22:26:41
demson
немного не в тему, но тем не менее
не подскажите как к камню at90usb1287 забить заголовочный фаил в avr studio 4 на СИ?

Добавлено: Вт ноя 11, 2008 03:26:49
Spy1313
я пишу только на асме. си в планах изучaть.

Добавлено: Вт ноя 11, 2008 11:14:25
pirotehnick
demson писал(а):как к камню at90usb1287 забить заголовочный фаил в avr studio 4 на СИ?

#include<сетевой путь к директории + имя файла>