Приветствую Вас, Гость! Регистрация RSS

Вторник, 22.08.2017
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 5 из 5«12345
Форум » Форум mega-avr.ucoz.ru » Схемотехника на микроконтроллерах AVR » ATmega 16 + FDCG12864B
ATmega 16 + FDCG12864B
ilvzДата: Суббота, 11.12.2010, 01:30 | Сообщение # 81
Любопытный
Сообщений: 143
Репутация: 2
Город: Almaty
Статус: Отсутствует
Тогда уже лучше
Code
Zoom_Invert
biggrin
Новое оформление для кодов на порядок лучше предыдущего. smile
 
us4ilqДата: Понедельник, 20.12.2010, 20:24 | Сообщение # 82
Опытный
Сообщений: 173
Репутация: 2
Город: Донецк
Статус: Отсутствует
Здравствуйте все !
Наконец то я сумел найти немножко времени и поколдовать над своей "пикалкой" smile
Короче говоря, от тикания избавиться удалось следующим образом
Code
  void AskKey (void)    
      {
           Key=0;       
                         
           DDRC|=(1<<3);       // Столбец 1 на выход.                   
           PORTC&=~(1<<3);   // Выбрать столбец 1.
           #asm ("nop");

           switch (PINC&=~((1<<0)|(1<<1)|(1<<2))) {             
           case 0b11010000: {Key=1; break;}  // Кнопка 1A.
           case 0b10110000: {Key=2; break;}  // Кнопка 1B.       
           case 0b01110000: {Key=3; break;}  // Кнопка 1C.
           }  
           PORTC|=(1<<3);                   // Восстановить единичный уровень на столбце 1.
           DDRC&=~(1<<3)|(1<<4);      // Все столбцы на вход.         
                    
            
           DDRC|=(1<<4);       // Столбец 2 на выход.
           PORTC&=~(1<<4);   // Выбрать столбец 2.     
           #asm ("nop");

           switch (PINC&=~((1<<0)|(1<<1)|(1<<2))) {               
           case 0b11001000: {Key=4; break;}  // Кнопка 2A.
           case 0b10101000: {Key=5; break;}  // Кнопка 2B.  
           case 0b01101000: {Key=6; break;}  // Кнопка 2C.
           }   
           PORTC|=(1<<4);                  // Восстановить единичный уровень на столбце 2.
           DDRC&=~(1<<3)|(1<<4);     // Все столбцы на вход.  
            
           
      }
   
   

Вот блин
опять невлазит сообщение

Добавлено (17.12.2010, 21:19)
---------------------------------------------
В догонку

Code
  
// Пищалка

     void Beep (void) {          
          DDRC=(1<<2);       //Сделать РС2 выходом    
        if (Key!=0 )  {           // Если нажата любая кнопка    
           TIMSK|=(1<<OCIE2);      // Разрешаем прерывания таймера Т2 по совпадению            
             }
             else  {
             TIMSK = 0; };              //  Запрещаем  прерывания таймера Т2
        }

///////////////////////////////////////////////////////////////////////////
    
    // Подпрограмма обработки прерывания по соврадению T2  
   
     interrupt [TIM2_COMP] void timer2_compa_isr(void) {       
            PORTC^=(1<<2);     //Инвертируем уровень на РС2            
            TCNT2 = 0;              // Обнуляю счетчик
     }

В инициализации

Code

// Port C initialization
PORTC=0xE0;                        // PC5, PC6, PC7 - в состояние "1"             
DDRC=0xE4;                // PC2,PC5, PC6, PC7 - на выход                    

Вот только никак немогу понять один момент;
У автора вункции void AskKey (void) строка

switch (PINC&=~((1<<0)|(1<<1)|(1<<2))) {
выглядит совсем по другому, вот так
switch (PINC|((1<<0)|(1<<1)|(1<<2))) {
А у меня так неработает совсем .

Как это можно обьяснить???
Спасибо.

Добавлено (18.12.2010, 05:40)
---------------------------------------------
Вопрос о

Quote
switch (PINC&=~((1<<0)|(1<<1)|(1<<2))) {

снят.
Автор обьяснил.

Добавлено (20.12.2010, 20:24)
---------------------------------------------
Общественность!
Ну как , выкладывать новую версию печатной платы?
В ней есть -
Возможность использования дифференциального входа АЦП,
Разьем "джейтаг",
Выводы для часового кварца на разьеме,
Возможность отключить "макс 232" и подключить внешний модуль "ЮСВ"
Выведен наружу I2C.
С платы исчез стабелизатор +12 (решил что это лишнее).

 
АвторДата: Вторник, 21.12.2010, 11:44 | Сообщение # 83
Автор сайта
Сообщений: 200
Репутация: 3
Город: Омск
Статус: Отсутствует
Конечно! Интересно посмотреть!


_____________________________________________________________
Радиоэлектроника и Программирование занимательная штука...
 
us4ilqДата: Вторник, 21.12.2010, 12:58 | Сообщение # 84
Опытный
Сообщений: 173
Репутация: 2
Город: Донецк
Статус: Отсутствует
Вот.
Картинка и .lay

Правда схему под эту плату еще не рисовал,
позже сделаю. На это ж тоже время надо .

Я постарался сделать так чтобы за края платы ничего не выступало.
Правда разьем "КОМ" порта спрятать неудалось, хотя с другой стороны, если в последствии использовать плату в готовом устройстве ,
его все равно придется выпаивать и сажать на шлейф (провода).
Разьем S3 как раз для использования внешнего ЮСБИ (это если J1 и J2 разьеденить ), ну или для любого дгугого применения.
Все разьемы (кроме аналоговых входов) "Г" образные. А т.к. у меня таковых неоказалось - то я приспособлю разьемы
от разобраных старых жестких дисков или "сидюков" .
Отрежу нужное количество ног, и два ряда соединю параллельно smile .
Вот под такой вариант и разводил.
А кому ненравится, то имея "Лайоут", совсем несложно подправить под настоящие разьемы.

Файл: 9075957.rar(269Kb)


Сообщение отредактировал us4ilq - Вторник, 21.12.2010, 13:25
 
АвторДата: Вторник, 21.12.2010, 14:06 | Сообщение # 85
Автор сайта
Сообщений: 200
Репутация: 3
Город: Омск
Статус: Отсутствует
Очень хорошо


_____________________________________________________________
Радиоэлектроника и Программирование занимательная штука...
 
ilvzДата: Четверг, 23.12.2010, 03:33 | Сообщение # 86
Любопытный
Сообщений: 143
Репутация: 2
Город: Almaty
Статус: Отсутствует
Разводка выглядит красиво! У меня так не получается:).. Вот если только для клавиатуры поставить сдвиговый регистр, то к-во кнопок можно увеличить до 8-ми, а к-во битов порта сократить до трёх. 74хх164 достаточно. Как раз под зуммер должно поместиться. Ещё увидел, что кварц далеко. Джитагом не пользуюсь а час. кварц жалко.



Сообщение отредактировал ilvz - Четверг, 23.12.2010, 03:36
 
ilvzДата: Четверг, 23.12.2010, 03:57 | Сообщение # 87
Любопытный
Сообщений: 143
Репутация: 2
Город: Almaty
Статус: Отсутствует
Хотел выложить фото своего устройства с таким-же дисплеем через img. Но, то-ли здесь не работает, то-ли сайт не даёт копировать.
Пробую через загрузку снизу.
Капец!!! Прохожему за 1,6 амер. рублей, а мне через 60 сек.! И это с моей страницы.
Файл: 8058633.jpg(78Kb) · 5582061.jpg(79Kb) · 2988603.jpg(83Kb)
 
us4ilqДата: Четверг, 23.12.2010, 05:12 | Сообщение # 88
Опытный
Сообщений: 173
Репутация: 2
Город: Донецк
Статус: Отсутствует
Да Илья!
Вы правы!
У вас так не получается smile , у Вас получается гораздо лучше (видны проводнички на плате).
Что до регистров - так я с ними работать пока неумею, может быть потом. Да и нету у меня их.
Да и кнопок вроде как достаточно, хотя кто знает, может и нет.
Quote
Ещё увидел, что кварц далеко.

Согласен, но лучше пока невыходит. Хотя с другой стороны у других я видел и подальше.

Может еще что подскажете?

Сообщение отредактировал us4ilq - Четверг, 23.12.2010, 05:14
 
ilvzДата: Вторник, 28.12.2010, 03:36 | Сообщение # 89
Любопытный
Сообщений: 143
Репутация: 2
Город: Almaty
Статус: Отсутствует
Подскажу smile
Подскажу, что почти все линии портов идущие к дисплёю большую часть времени свободны если не выбран ни один из кристаллов. Т.е. шину данных можно в полном объёме использовать (как на вход так и на выход) в промежутке между сеансами дисплея. Или напрямую (эпизодически) или через защёлку (постоянно). Напр. на шину данных можно развести клавиатуру 4х4. Если на шину поставить резисторы 4-10Ком, то клавиатура (и не только) не будет мешать дисплею совсмем. Правда для этого драйвер дисплея должен покидать шину по окончании работы и вновь конфигурировать её в начале каждого сеанса. Вообще-то это норма. Так он и должен себя вести.
Сам себе я так и не сделал универсальной платы. Поэтому вымучиваю всё на платах заточенных под другое.
Вот свежий пример:

Добавлено (28.12.2010, 03:36)
---------------------------------------------
biggrin С наступающим Всех! wink

Файл: 0313007.jpg(170Kb)
 
us4ilqДата: Вторник, 28.12.2010, 04:19 | Сообщение # 90
Опытный
Сообщений: 173
Репутация: 2
Город: Донецк
Статус: Отсутствует
Ну в общем я знаю что параллельно с индикаторам можно цеплять некоторые другие устройства.
Но только в общем.
Как это делается я конечно пока незнаю. Наверное потому что пока невозникало острой нехватки выводов.
Однако все равно большое спасибо.
 
ilvzДата: Среда, 29.12.2010, 01:36 | Сообщение # 91
Любопытный
Сообщений: 143
Репутация: 2
Город: Almaty
Статус: Отсутствует
"Как это делается я конечно пока незнаю."
Это не должно мешать разводке. Плата то, как раз и предназначена для ликвидации незнания.
Если эта плата не куда-то конкретно, то лучше достичь максимума универсальности.
Поставить например пины на все порты + к ним питание. Хотя на таких платах пинов питания хронически не хватает.
Какой нибудь порт можно оформить в 3-х рядную гребёнку. К каждому пину по питанию. Тогда 18В20, сервомотор, да и много ещё чего можно будет подключать 3-х точечным разъёмчиком. Сделать такую "рабочую лошадку". Прямо самому захотелось =)
 
us4ilqДата: Среда, 29.12.2010, 16:21 | Сообщение # 92
Опытный
Сообщений: 173
Репутация: 2
Город: Донецк
Статус: Отсутствует
Quote
Если эта плата не куда-то конкретно, то лучше достичь максимума универсальности.

Отчясти. Задумывалась как специальная для изучения работы с графическими индикаторами .
И в тоже время чтоб в дальнейшем использовать в каком нибудь готовом устройстве.

А как отладочная вообще, у мнея есть другая самодельная , на ней есть все выводы портов на разьемах ,
КОМ порт, и возможность подключения индикаторов 1602. А также 4 светодиода ( которыми я ни разу невоспользовался).

Quote
Сделать такую "рабочую лошадку". Прямо самому захотелось =)

Ну так в чем же проблема то?
Делайте ( исправляйте мою ) под свои предпочтения, глядиш вместе и изобретем "шедевр" biggrin

Для того и выкладывал на всеобщее обозрение.

 
ilvzДата: Среда, 29.12.2010, 18:57 | Сообщение # 93
Любопытный
Сообщений: 143
Репутация: 2
Город: Almaty
Статус: Отсутствует
Уже готов поспорить. Для "в каком нибудь" ком порт не нужен. Ну разве что для GPS или промышленного оборудования. С компом можно соединять с MAX-ом в кабеле. Одним на неск. устройств. Экономия места (чип и разъём), которое лучше занять доступными или возможно доступными чипами. Часы, память, регистры сил. ключи ну и поле для свободного монтажа. Про часовой кварц я кажется уже писал. Ничего из вышеперечисленного можно и не ставить если в конкретной реализации не требуется. А можно будет поставить потом когда возникнет потребность. Даже в пром. исполнении часто плата полупустая. Лайт версия. Чтобы не разрабатывать отдельные платы под все версии устройства. Вот например на плате, фото которой я выставлял, на обратной стороне есть место под 16-разр. АЦП, Ком(для GPS) и память 45DBXXX. На лицевой MPX, часикии и часовой кварц. На разъёмы выведено всё что получилось. 12 линий. Даже то что идёт на чипы. Ведь они не всегда установлены. На разъём со SPI выведено и питание 3.3. Вдруг флеш кару захочу туда подключать. Вот примерная декларация моего подхода. Моё ИМХО. Это ПЛАТФОРМА. Использую уже года 3. Для разного. Да ещё. DS1307 кроме часов (которые и не использую часто) хранит критические данные времени исполнения. Для восстановления системы после сбоя. Микро ОЗУ с батарейкой =). Бывают у такого подхода и сбои. Во нафига мне надо было столько дырок для тиньки управляущей одной нагрузкой на 220?

Добавлено (29.12.2010, 18:57)
---------------------------------------------
Забыл.
Про вместе.
Я бы с удовольствием=)) Не люблю я это дело. Времени уйму отнимает.
Но, то что есть (под этот дисплей) меня устраивает. Кнопок бы добавил. Энкодер не всегда удобно. А сейчас нужно делать след. "платформу", но уже под другой диплей. С которым разбираюсь. Есть наработки под семисегментники. С регистрами и без.
Для "бюджетных" устройств. Пардон. Это уже не в тему.

Файл: 9267750.jpg(101Kb)
 
SergBaginДата: Суббота, 15.10.2011, 02:42 | Сообщение # 94
Заглянувший
Сообщений: 1
Репутация: 0
Город: Киров
Статус: Отсутствует
Всем привет!
Не так давно стал изучать программирование AVR на С c Atmega16
Появился индикатор FDCG12864B хотел бы его подключить вывести графику и текст.
Возник вопрос:
1. есть у кого программа на С с выводом текста и графики
2. подключение его согласно программе?

Сильно не пинайте! только начал программировать!
 
us4ilqДата: Воскресенье, 16.10.2011, 15:29 | Сообщение # 95
Опытный
Сообщений: 173
Репутация: 2
Город: Донецк
Статус: Отсутствует
SergBagin

Все есть в этой теме, и в статьях на этом же сайте. Правда без графики.
Но прежде надо хотя бы с текстом разобраться.
Касаемо именно Вашего индикатора обратите внимание на сообщения № 7 и 8.
 
Форум » Форум mega-avr.ucoz.ru » Схемотехника на микроконтроллерах AVR » ATmega 16 + FDCG12864B
Страница 5 из 5«12345
Поиск: