Страница 21 из 132
Добавлено: Ср фев 25, 2009 20:47:14
Valera_112
Я понял в чем проблема. Вопрос теперь в другом, как уменьшить частоту сингранизации при програмировании в CVAVR по интерфейсу SPI?
Добавлено: Ср фев 25, 2009 21:51:21
nictrace
может, попробовать uniprof?
Добавлено: Вт мар 03, 2009 22:43:25
Pooher
2
Кирилл
Подключать можно к любому порту.
Обработка примерно такая(кнопка на PD0):
Код: Выделить всё
reset:
ldi Tmp, RamEnd ; инициализация стэка
out SPL, Tmp
cbi PORTD, 0 ; подтяжка откл
cbi DDRD, 0 ; линия на ввод
forever:
sbiс PIND, 0 ; пропустить следующую команду если PD0 сброшен
rcall lable ; перейти, если PD0 установлен
rjmp forever
lable:
nop
ret
Добавлено: Чт мар 05, 2009 23:44:34
Елисей
доброго времени суток! имеется такая проблема.- ATtiny2313 успешно распознается и шьется прогой AvrOsp_II_400. только вот при загрузке ЛЮБОЙ прошивки он на 19 ногу выдает 5 вольт а на остальные 3 вольта. программки для него брал и из обучалки где просто некоторые светодиоды засветить и свою писал, все одна и та же реакция. кварц я не ставил, но и заводские фьюзы не менял, т.е. по идее он должен работать от внутреннего генератора. как быть?
Добавлено: Пт мар 06, 2009 17:29:39
Pooher
2Елисей
Код прошивки выложите.
Добавлено: Пт мар 06, 2009 17:40:01
Елисей
прошивка самая любая, например вот эта
Код: Выделить всё
.include "C:\Program Files (x86)\Atmel\AVR Tools\AvrAssembler\Appnotes\tn2313def.inc"
.def Temp=R16
.def Temp1=R17
.def Temp2=R18
.def Temp3=R19
.def Temp4=R20
.cseg
.org 0
ldi Temp, 0b11111111 ;присвоение константы
out DDRB,Temp ;вывод
;выводим число 11010010 на светодиоды
ldi Temp,0b11010010 ;присвоение константы
out PortB,Temp ;вывод на индикацию
та что была с самого начала зашита- в приложении. (должна опрашивать датчики и включать светодиоды)
Добавлено: Пт мар 06, 2009 18:06:19
Елисей
вот это как называется? утро вечера мудреннее? я его забыл на ночь из розетки вытащить так он раскачался, щас заново прошил- вроде работает. только почемуто не в том порядке (заказываю 11010010 а выдает 01001011 если считать с ножки PB0).да еще и не прямым сигналом а на 500 килогерцовой частоте и довольно хитрой формы(может потому что я его от нокиевского зарядника питаю?). можно это какнибудь исправить? а та прога которую я в приложении к предыдущему сообщению выложил все таки не работает. на 19 ноге есть сигнал на остальных нету. независимо от состояния входов. в симуляторе AVR studio все работает на ура
Добавлено: Пт мар 06, 2009 20:23:37
Pooher
Я бы сделал вот так:
Код: Выделить всё
.include "C:\Program Files (x86)\Atmel\AVR Tools\AvrAssembler\Appnotes\tn2313def.inc"
.def Temp=R16
.def Temp1=R17
.def Temp2=R18
.def Temp3=R19
.def Temp4=R20
.cseg
.org 0
;reset:
rjmp start
; Начальная инициализация
Start:
ldi Temp, 0b11111111 ;присвоение константы
out DDRB,Temp ;вывод
;выводим число 11010010 на светодиоды
ldi Temp,0b11010010 ;присвоение константы
out PortB,Temp ;вывод на индикацию
; Бесконечный цикл.
; Если его не будет, то очень сложно предположить, что контроллер
; будет делать дальше
Forever:
nop
rjmp Forever
Добавлено: Вс мар 08, 2009 09:52:13
Pooher
По поводу программы из приложения:
Код: Выделить всё
breq del1
.....
del1:
ldi Temp2,0b0001000
out Portb,Temp2
ret;??!!
ret-это команда возвращения из подпрограммы.
Подпрограмма вызывается командами типа call, при выполнении которых содержимое счётчика программ (PC) помещается в
стэк(который у Вас,к стати, даже не инициализирован).
Команда
ret извлекает PC из стэка, и возвращает программу в соответствующее место.
Как думаете, в Вашем случае что и откуда извлекает ret?
Инициализация
стэка:
Код: Выделить всё
ldi tmp, LOW(RAMEND); младший байт адреса конца RAM в tmp
out SPL, tmp ; tmp в младший байт указателя стэка
; если RAM>256 байт, то надо инициализировать SPH
ldi tmp, HIGH(RAMEND); старший байт адреса конца RAM в tmp
out SPH, tmp ; tmp в старший байт указателя стэка
ЗЫ: Срочно в обучалку.
Добавлено: Пн мар 09, 2009 17:45:44
DataLife
Такого рода проблема:
Прошил тини2313 простенько прошивочкой аля бегущие огоньки:
Код: Выделить всё
PORTB.0=1;
delay_ms(200);
PORTB.1=1;
delay_ms(200);
PORTB.2=1;
delay_ms(200);
...
//начинаем потихоньку тухнуть
PORTB.0=0;
delay_ms(200);
PORTB.1=0;
delay_ms(200);
PORTB.2=0;
delay_ms(200);
...
И что было замечено... Первый N-циклов всё хорошо работает. Но после начинается сбой: приблизительно раз в 2-3 цикла, не доходя до конца затухания, диоды тухнут и снова начинают зажигаться. Пройдя 2-3 раза - снова та же история.
Частота выставлена на внутрений генератор 8МГц. Fuse SUT0..1
00.
Побывал и на 4-х МГц ... Так же.
Программно (в плане прошивки) нет ошибок.
При моделировании в Протеусе - предупреждение. Что-то не так со сторожевым таймером. Но продолжает работать.
Кто что подскажет?
Добавлено: Пн мар 09, 2009 18:04:14
nictrace
DataLife писал(а):
При моделировании в Протеусе - предупреждение. Что-то не так со сторожевым таймером.
Думаю, он просто срабатывает

Добавлено: Пн мар 09, 2009 18:24:43
DataLife
Есть способы его отключить? Так как этот "эффект" мне уж никак не нужен.
На странице 38 Даташита написано что-то про него... Но я толком мне понял, как его отключить... Да и на 42-й есть программный код ...
Добавлено: Пн мар 09, 2009 18:43:48
sachok
Вот так я отключал в Atmega16. Но протеус продолжает ругаться, такой вот он дурак:) собрал все в железе и никаких проблем.
Добавлено: Пн мар 09, 2009 19:00:39
DataLife
Вроде бы как вылечено строчками:
Код: Выделить всё
#asm ("wdr")
/* Write logical one to WDTOE and WDE */
WDTCR |= 0x18; //(1<<WDTOE) | (1<<WDE);
/* Turn off WDT */
WDTCR = 0x00;
5 минут полёт нормальный

AT90S2313/ATTiny2313
Добавлено: Вт мар 10, 2009 17:45:16
kret_a_v
AT90S2313/ATTiny2313
памагите !!!!
Гуру помогите новичку
сделал стк200/300
а как к нему присобачить AT90S2313/ATTiny2313 ????
за ранее мяу
Добавлено: Вт мар 10, 2009 19:31:23
Aheir
У программатора есть выходы MOSI, MISO, Reset и т.д. - их нужно соединить с соответствующими выводами контроллера. Ну и питание не забыть подать на программатор и МК. И вперед.

Re: AT90S2313/ATTiny2313
Добавлено: Вт мар 10, 2009 21:10:28
DataLife
kret_a_v писал(а):помогите новичку
сделал стк200/300
а как к нему присобачить AT90S2313/ATTiny2313 ????
за ранее мяу
Скажем проще...
Если собирал по
ЭТОЙ статье, что там есть приатаченый архив со схемой программатора и плат расширения. Одна из плат - плата для тини2313/90s2313. Делаешь, подключаешь, горя не знаешь

Только одно НО! Если будешь запускать от внешнего генератора (кварц), то нужно
убрать перемычку от 5-й ноги к порту х2.
Добавлено: Ср мар 11, 2009 12:00:38
kret_a_v
DataLife - сори
спасибо уже разобрался
а как без кварца будет ?
Добавлено: Ср мар 11, 2009 12:11:06
kret_a_v
я набрел пока на этот
Добавлено: Ср мар 11, 2009 12:12:46
kret_a_v
есть печатка без кварца вроде
а открыть не могу