Здравствуйте. Подскажите плз, как вывести любой символ(неподвижный хотя бы) на LED матрицу 8*8, используя массив в CVAVR на С++. строки и столбцы подключены напрямую к атмеге16. портА-строки, портВ-столбцы(потому что пользоваться 74сн595 ещё не умею). А вот как вывести на порты, незнаю. Спасибо заранее.
#include <mega16.h> #include <delay.h>
char temp[8][8] = //например пример, вроде правильно))) { 00000000, 11111111, 01111110, 11111111, 01011010, 00011000, 00011010, 01111001,
}; void main(void)
while (1) { // Place your code here // А вот как вывести на порты, незнаю. }
регистр DDRx отвечает за направление порта, с PINx можно считать информацию с вывода, на PORTx отвечает за состояние выхода или за включение подтяжки в режиме входа. Ребята, читайте даташит. Есть же даже на русском языке!
Ага читать..... Учиться еще скажите. Мы народ такой , с детства в крови "Не хочу учиться, а хочу жениться!" Из какого это произведения?или это из жизни? А ну да, про матрицу 8х8...) Думаю, что, это поможет http://my-avr.at.ua/publ/7_i_segmentnik ... 5/1-1-0-39
Дошло!(неделю не мог спать) нужно было просто ввести ещё одну переменную,
Вы знайте, что общение на форуме очень хорошо помогает в реализации собственных мыслей... Несмотря на то, что некоторые в своих постах пишут "колкие советы" они же все равно помогают.... Мне вот интересно, как это можно сделать (8х8 символ) без 74НС595 Если не жалко покажите код, что там сделали ...
unsigned char count = 0; //счётчик элементов массива unsigned char temp; //переменная портаА void main( void ) { DDRA=0xFF; //настраиваем портА на выход PORTA=0x00; //устанавливаем начальное значение ноль PORTB = 0xff; //настраиваем портВ на выход DDRB = 0xff; //устанавливаем начальное значение на всех пинах 1
while(1) //бесконечный цыкл { temp = 0x01; //записываем начальное значение 0b00000001 while (temp != 0) //бесконечное условие { PORTA = temp; //запишем temp в порт A temp = temp << 1; //сдвигаем разряды { PORTB = ~number[count]; //выводим в портВ значения массива count++; //инкрементируем счётчик if (count == 8) //проверяем условие счётчика count =0; //дошол до 8, скинули в ноль delay_ms(1); // задержка } } } }
>>Мне вот интересно, как это можно сделать (8х8 символ) без 74НС595
А матрица подключена в протеусе напрямую к портам. Это временно, потому что только изучаю и пока не получается через 74HС595 ёё подключить. В данный момент решаю проблему прокрутки пока одного символа(от помощи по коду, не откажусь))), а дальше-больше))))
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения