ATmega8 : Бегущая строка

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Встал на лапы
Аватара пользователя
Сообщения: 117
Зарегистрирован: Чт янв 11, 2007 12:14:33

Сообщение Пожиратель AVR »

Нувот я решился составлять первую сложную для меня программу, а для ковото она несложная :)) . Вот почему-то я дамно хотел сделать бегущую строку .Ну я набросал простую схемку с разрешением строки 8x16 без усилительных ключей. Использовать намереваюсь ATmega8 b 74HCT154 (Наша микруха 155ИД3).Ну первое что я хотел узнать сколько понадобится регистров для хранения страницы 8x16 как я думаю понадобится 16 регистров так это?
Вложения
схема бегушей строки.GIF
(46.38 КБ) 1532 скачивания
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3792
Зарегистрирован: Чт сен 14, 2006 11:42:09
Откуда: Обитаю на чердаке

Сообщение Мышонок »

Серии 74HCT соответствует серия IN74HCT НПО "Интеграл", поэтому аналог указан некорректно. 8)
Память очень интересная штука: бывает так, что запомнишь одно, а вспомнишь другое...
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург

Сообщение Aheir »

Кончай флуд! :evil: :)))

Да, если регистр восьмиразрядный, для организации массива 8х16 их понадобится 16 штук.
Оптимизм х (Опыт + Знания) = const
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18851
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Я так понимаю, что речь идет о внутренних регистрах микроконтроллера. Мое мнение: лучше использовать ячейки ОЗУ для хранения "страницы" - во-первых, ОЗУ "просторнее" регистровой памяти, во-вторых, можно хранить саму строку (довольно большой длины), а "окном" из 16 адресов "бежать" по этой строке... И еще есть немало плюсов...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Аватара пользователя
Сообщения: 117
Зарегистрирован: Чт янв 11, 2007 12:14:33

Сообщение Пожиратель AVR »

Ну с озу я еше неработал токо с регистрами .
Если незатруднит подскажи как с озу работать , ато регистров всего 16 получается токо одна страница влезет .
А если использовать озу то скоко можно будет в неё засунуть страниц?
Контактная информация:
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18851
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Ну, допустим, регистров все-таки 32... а ОЗУ - это зависит от типа вашего МК, например, для ATMega8 ОЗУ составляет 1024 байта (точнее, немного меньше, но суть не меняется) - вот и смотрите, сколько "страниц" туда влезет...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 117
Зарегистрирован: Чт янв 11, 2007 12:14:33

Сообщение Пожиратель AVR »

Как я понел туда можно "засунуть" 60 страниц разрешением 16x8
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18851
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Иван.паяльшик писал(а):Как я понел туда можно "засунуть" 60 страниц разрешением 16x8
Это смотря как и что засовывать :) - можно и больше
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 117
Зарегистрирован: Чт янв 11, 2007 12:14:33

Сообщение Пожиратель AVR »

Ну это если прям выводить из памяти изображение 16x8 то около 60 страниц влезет , а если использовать знакогенератор (а хотя какой знакогенератор для разрешения 16x8) ну зато туда много влезло.
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

Что бы не создавать новую тему напишу здесь) Хочу понять суть работы бегущей строки, для основы взял Atmega8 и матрицу с светодиодов: 7 строк, 8 столбцов. Пока не понимаю самого алгоритма вівода строки. Сейчас я подаю питание на столбци поочередно начиная с самого правого и заканчивая самым левым. Всё это происходит при обработке прерывания таймера. А вот с какой частотой подавать питание на столбци я не знаю, а также не знаю как выводить символы. Например, символ будет иметь размер (7х5).
Написал таблицу для символа "В"

Код: Выделить всё

flash char symvols [] =
{
    0b01111111,
    0b01001001,
    0b01001001,
    0b01001001,
    0b00110110
};
Вот так пытался вывести его, но ничего не вышло :)

Код: Выделить всё

interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Reinitialize Timer 0 value
TCNT0=0xFF;
// Place your code here
    switch (cur_stovp)
    {
        case 0:{PORTD =~ stovp [7]; break;};
        case 1:{PORTD =~ stovp [6]; break;};
        case 2:{PORTD =~ stovp [5]; break;};
        case 3:{PORTD =~ stovp [3]; break;};
        case 4:{PORTD =~ stovp [3]; break;};
        case 5:{PORTD =~ stovp [2]; break;};
        case 6:{PORTD =~ stovp [1]; break;};
        case 7:{PORTD =~ stovp [0]; break;};
    }
    PORTB = symvols [i];
    cur_stovp++;
    i++;
    if (cur_stovp==8)
    {
        cur_stovp=0;
    }
    if (i==5)
    {
        i=0;
    }
}
Вложения
Run str.rar
(11.96 КБ) 367 скачиваний
Я не Сашок!!!
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»