Лента питается от отдельного источника 12В.
МК питается от 5В через USB. (тактирование от внутреннего кварца. Частоту в коде задал 8МГц)
Нули питания МК и ленты соединены между собой на макетной плате.
Управляющий сигнал идет от PORTB.1 через резистор 220 Ом.
В коде прописал 3 цикла (по одному на каждый цвет в светодиоде).
Насколько я знаю цвет загорается когда сперва передаем логическую единицу в течение 0.8мкс, а ноль в течение 0.45 мкс. А гаснет светодиод при передаче единицы в течение 0.4мкс, а нуля в течение 0.85мкс.
Зеленый цвет ставлю включаю (байты G7...G0), а красный(R7...R0) и синий(B7...B0) выключаю.
Может я в коде что то напутал? Или дело в МК и он не может такие управляющие импульсы выдавать? Нигде не могу найти решение. Везде только уроки по ардуино с уже готовыми библиотеками, в которых неизвестно что и как происходит. А я хочу сам ручками с нуля все сделать.
Сам код программы в Atmel Studio:
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
int main(void)
{
DDRB=0b1111111;
PORTB=0b0000000;
while (1)
{
for(int i=0;i<8;++i) //передаем биты 1 в G7...G0
{
PORTB=0b0000010;
_delay_us(0.
PORTB=0b0000000;
_delay_us(0.4);
}
for(int i=0;i<8;++i) //передаем биты 0 в R7...R0
{
PORTB=0b0000010;
_delay_us(0.4);
PORTB=0b0000000;
_delay_us(0.85);
}
for(int i=0;i<8;++i) //передаем биты 0 в B7...B0
{
PORTB=0b0000010;
_delay_us(0.4);
PORTB=0b0000000;
_delay_us(0.85);
}
_delay_us(50);
}
}


