ВСЁ по прошивке и программированию AT90S2313/ATTiny2313
Бегающий "fire" :)
Господа техно-коты, помогите с программой для бегущего огонька.
Просто решил пойти немного своим методом для получения этого эффекта, а он не работает: горит только первый светодиод.
Микра - тинни2313, светики - на порте B
Исправьте, пожалуйста, что не так..
Просто решил пойти немного своим методом для получения этого эффекта, а он не работает: горит только первый светодиод.
Микра - тинни2313, светики - на порте B
Исправьте, пожалуйста, что не так..
- Вложения
-
- prog.asm
- Не работающий огонёк... :(
- (1.95 КБ) 334 скачивания
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Код: Выделить всё
.org 0x000D rjmp TIMER0_COMPA ;Таймер/Счетчик0 в Режиме Сравнения на равенство TCNT0 и OCR0A
перенесите rjmp... на другую строчку, глядишь, заработает
парадоксы Atiny2313
уважаемые форумчане!
Столкнулся с парадоксомю
Выше на этой ветке было сказано ,что чтобы запустить внешний кварц
(3-8)МГЦ ,в Tiny2313 нужно поставить ФУЗЫ:
CKSEL: 1101 SUT:10
так вот поставил и записал программу мигающего светодиода.
Диод начал мигать, как и положено и продолжил мигание даже после отключения внешнего кварца.Кто нибудь может объяснить такой парадокс??узы казалось Настроены на внешний кварц, кварца нет, а свдтод мигает .
Это что востмое чудо свето чтоли???
Столкнулся с парадоксомю
Выше на этой ветке было сказано ,что чтобы запустить внешний кварц
(3-8)МГЦ ,в Tiny2313 нужно поставить ФУЗЫ:
CKSEL: 1101 SUT:10
так вот поставил и записал программу мигающего светодиода.
Диод начал мигать, как и положено и продолжил мигание даже после отключения внешнего кварца.Кто нибудь может объяснить такой парадокс??узы казалось Настроены на внешний кварц, кварца нет, а свдтод мигает .
Это что востмое чудо свето чтоли???
стоит программатор stk200/300 и cvavr .
Я тоже с начало так подумал и поменя коды в инверсные но заустился внкутренный генератор нормально.
Главное ,когда смотрю осциллографом на выводы кварца при уомянутых фузах ничего не показывает, а чип пашет, т.е .светодиод мигает.
Я цеплял кварц 4мгц ,1мгц но одно и тоже.
Даже не знаю какая частота генерируется светильник мигает медленно чем на 4 мгц .
Я тоже с начало так подумал и поменя коды в инверсные но заустился внкутренный генератор нормально.
Главное ,когда смотрю осциллографом на выводы кварца при уомянутых фузах ничего не показывает, а чип пашет, т.е .светодиод мигает.
Я цеплял кварц 4мгц ,1мгц но одно и тоже.
Даже не знаю какая частота генерируется светильник мигает медленно чем на 4 мгц .
- Vergilium
- Грызет канифоль
- Сообщения: 260
- Зарегистрирован: Ср фев 13, 2008 14:41:32
- Откуда: Украина, Николаев
Здраствуйте. подскажите как правильно организовать прерывание PCINT0-PCINT3. при подаче 0 на один из этих выводов, нужно чтобы МК входил в соответствующее прерывание.
вот это не работает:
#include <avr>
#include <util>
#include <avr>
#include <avr>
#define r 0b1011
#define g 0b1101
#define b 0b1110
#define y 0b0111
unsigned char led[4]={0xff,0xff,b,0xff};
unsigned char col;
ISR(PCINT0_vect)
{
led[0]=r;
}
int main (void)
{
DDRB = 0x00;
DDRD = 0xFF;
PORTD = 0xFF;
GIMSK=0x20;
MCUCR=0x00;
PCMSK=0x1F;
EIFR=0x20;
while(1)
{sei();
for (unsigned char i=0;i<=3;i++)
{
PORTD = led[i];
_delay_loop_2(10000000000);
PORTD = 0xff;
_delay_loop_2(1000);
}
}
}
вот это не работает:
#include <avr>
#include <util>
#include <avr>
#include <avr>
#define r 0b1011
#define g 0b1101
#define b 0b1110
#define y 0b0111
unsigned char led[4]={0xff,0xff,b,0xff};
unsigned char col;
ISR(PCINT0_vect)
{
led[0]=r;
}
int main (void)
{
DDRB = 0x00;
DDRD = 0xFF;
PORTD = 0xFF;
GIMSK=0x20;
MCUCR=0x00;
PCMSK=0x1F;
EIFR=0x20;
while(1)
{sei();
for (unsigned char i=0;i<=3;i++)
{
PORTD = led[i];
_delay_loop_2(10000000000);
PORTD = 0xff;
_delay_loop_2(1000);
}
}
}
Немного нервов и девайс готов

слева!