Форум myROBOT.ru » Шаг за шагом » Программирование микроконтроллеров » Прошивка attiny2313

Страниц (1): [1]
 

1. opot - 03 Апреля, 2014 - 14:24:21 - перейти к сообщению
Купил attiny2313, написал тестовую прошивку в AtmelStudio
CODE:
# define F_CPU 1000000UL

#include <util/delay.h>
#include <avr/io.h>

int main(void)
{
DDRD = 0xff;

while(1)
{
PORTD = 0b11111110;
_delay_ms(1000);
PORTD = 0b11111101;
_delay_ms(1000);
}
}

Залил с помощью usbasp, внешний кварц не использовал, фьюзы не менял, питание от 5в(usb зарядник от телефона)
Fuse
L 0xE4
H 0xCB
E 0xFF
LB 0x3F

при подключение светодиода очень быстро моргает, пробовал переписать прошивку для других портов, пинов: ситуация та же. а не используемых портах значения не меняются, только на используемых тут
p.s. attiny2313 не attiny2313v
p.p.s в proteus всё работает как надо
2. Роботов - 03 Апреля, 2014 - 19:18:58 - перейти к сообщению
Надеюсь светодиод через резистор подключен?
3. opot - 03 Апреля, 2014 - 19:47:30 - перейти к сообщению
Роботов пишет:
Надеюсь светодиод через резистор подключен?

нет, но он горит ярко(даже слишком), при подключении напрямую, микроконтроллер только сбросит напряжение. При том же коде, программаторе, светодиоде, токах, на аттини26 всё в порядке
4. Роботов - 03 Апреля, 2014 - 21:00:45 - перейти к сообщению
Светодиод подключать без токоограничительного резистора КАТЕГОРИЧЕСКИ НЕЛЬЗЯ!
Это чревато перегрузкой порта ввода/вывода и дальнейшего выхода его из строя.
(см. даташит).
З.Ы.
Может он часто мигает потому что при включении светодиода происходит перегруз МК, и цикл начинается заново, и так бесконечно.
5. opot - 04 Апреля, 2014 - 12:44:36 - перейти к сообщению
Включил с резистором в 300 Ом, только моргать стал очень тускло, так же подключал всё это с использованием l293dne, реакция на резистор та же(печатка разведена для attiny2313 и этот драйвер, изначально предполагалось управлять двигателями с помощью мк, а светодиод пока использовал для отладки)
6. opot - 08 Апреля, 2014 - 12:39:03 - перейти к сообщению
Проблема решена, дело было во фью. Где точно ошибка не подскажу. Брал дефолты отсюда http://www.engbedded.com/fusecalcах
7. Vladimir72 - 08 Апреля, 2014 - 14:04:36 - перейти к сообщению
Проблема была с частотой тактирования, что-то был напутал
8. opot - 08 Апреля, 2014 - 16:29:45 - перейти к сообщению
Кажется это был watchdog. Т.к. при коде
CODE:
#define F_CPU 1000000UL
#include <avr/io.h>
int main(void)
{
DDRB = 0xff;
DDRA = 0xff;

PORTB = 0b11111110;
PORTA = 0b11111101;
while (1){}
}

моргания всё равно было
хотя с частотой тоже были проблемы, был отключен CKDIV8