Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


Ответ
Опции темы
Непрочитано 27.04.2010, 21:39   #21
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Осваиваем PIC24

Приношу свои извинения за молчание .
Пока готовлю материал ,но быстро не получится ...
Реклама:
__________________
Осторожно , злой кот
dosikus вне форума   Ответить с цитированием
Непрочитано 27.04.2010, 21:44   #22
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Осваиваем PIC24

Сообщение от Dtolok Посмотреть сообщение
вопрос такой по часам - как сохранить значения если отключить устройство? куда прикрутить батарейку?
Никуда. Мк в "слип", часы идут в "слипе".
realid вне форума   Ответить с цитированием
Непрочитано 27.04.2010, 22:05   #23
Dtolok
Гражданин KAZUS.RU
 
Регистрация: 28.11.2007
Адрес: харьков
Сообщений: 850
Сказал спасибо: 339
Сказали Спасибо 43 раз(а) в 23 сообщении(ях)
Dtolok на пути к лучшему
По умолчанию Re: Осваиваем PIC24

realid, это понятно... а вот нельзя отключить порты а питать только АЛУ
Dtolok вне форума   Ответить с цитированием
Непрочитано 27.04.2010, 23:31   #24
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Осваиваем PIC24

Сообщение от realid Посмотреть сообщение
Никуда. Мк в "слип", часы идут в "слипе".
Это они конечно недодумали... причём существенно (((((
Сообщение от Dtolok Посмотреть сообщение
realid, это понятно... а вот нельзя отключить порты а питать только АЛУ
А зачем АЛУ без портов? Ему тогда только спать. А в слипе питать АЛУ нет необходимости.
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов

Последний раз редактировалось picavr; 27.04.2010 в 23:34.
picavr вне форума   Ответить с цитированием
Непрочитано 27.04.2010, 23:49   #25
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Осваиваем PIC24

Сообщение от picavr Посмотреть сообщение
Это они конечно недодумали... причём существенно (((((
Да конечно, не дурнее нас.
Всё это уже не раз перетералось, для малоногих XLP - самый раз.
st_1 вне форума   Ответить с цитированием
Непрочитано 28.04.2010, 09:05   #26
Dtolok
Гражданин KAZUS.RU
 
Регистрация: 28.11.2007
Адрес: харьков
Сообщений: 850
Сказал спасибо: 339
Сказали Спасибо 43 раз(а) в 23 сообщении(ях)
Dtolok на пути к лучшему
По умолчанию Re: Осваиваем PIC24

прикрутил k pic24fj64ga004 -LCD wh2004a через PMP со стробами управляющих сигналов... так вот нормально не считывает бит занятости LCD кто то сталкивался? как сконфигурировать задержки ?
Dtolok вне форума   Ответить с цитированием
Непрочитано 28.04.2010, 10:00   #27
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Осваиваем PIC24

Сообщение от Dtolok Посмотреть сообщение
PMP со стробами управляющих сигналов
Каких именно? Без схемы подключения LCD к МК сложно что-либо рекомендовать.
Есть ли согласование уровней между МК и LCD?

P.S. Про сигнал E не забыли? Для контроллера ST7066 (LCD wh2004a) он является стробом чтения записи.

Последний раз редактировалось AJScorp; 28.04.2010 в 10:20.
AJScorp вне форума   Ответить с цитированием
Непрочитано 28.04.2010, 20:08   #28
Dtolok
Гражданин KAZUS.RU
 
Регистрация: 28.11.2007
Адрес: харьков
Сообщений: 850
Сказал спасибо: 339
Сказали Спасибо 43 раз(а) в 23 сообщении(ях)
Dtolok на пути к лучшему
По умолчанию Re: Осваиваем PIC24

да с сигналами все ок! только вот когда добавляю задержку тогда на экран выводятся все символы...
PHP код:
sub procedure writeLCDdim  addr as byte)
    
dim flag as bit
    
while(flag )           'wait for PMP to be available
    flag = PMMODE.BUSY
    wend
    PMADDR = addr
    PMDATA = c
    Delay_us (20)     '
вот задержка....
    
readLCD(LCDCMD)
end sub
'чтение флага занятости порта и LCD
sub function readLCD (dim addr as byte) as byte
    dim flag as bit
    while(flag = 1)          ' 
wait for PMP to be available
    flag 
PMMODE.BUSY
    wend
    PMADDR 
addr
    result 
PMDATA
    
while(flag 1)          ' wait for PMP to be available
    flag = PMMODE.BUSY
    wend
    while (flag = 1)
    flag = PMDATA.B7
    result = PMDATA
    wend
     result = PMDATA
    '
PMDATA =0
end sub 
Вложения:
Тип файла: rar pic24.rar (33.1 Кб, 184 просмотров)

Последний раз редактировалось dosikus; 28.04.2010 в 20:21.
Dtolok вне форума   Ответить с цитированием
Непрочитано 28.04.2010, 20:45   #29
Petr_Dynin
Временная регистрация
 
Регистрация: 20.06.2007
Сообщений: 70
Сказал спасибо: 1
Сказали Спасибо 12 раз(а) в 11 сообщении(ях)
Petr_Dynin на пути к лучшему
По умолчанию Re: Осваиваем PIC24

Индикатор (WH1602) нормально работает и при 3,3 в, ест-но, надо только с напряжением контрастности выкручиваться. Вот рабочий пример на основе "Полетов на PIC24"
PHP код:
#include ‹p24fj64ga004.h›
#include ‹libpic30.h›

#define LCDDATA 1            // RS = 1 - выбор регистра данных
#define LCDCMD  0            // RS = 0 - выбор регистра команд
#define PMDATA    PMDIN1

#define LCDbusy() LCDread(LCDCMD)&0x80
#define LCDaddr() LCDread(LCDCMD)&0x7F
#define getLCD()  LCDread(LCDDATA)
#define putLCD(d) LCDwrite(LCDDATA, (d))
#define LCDcmd(c) LCDwrite(LCDCMD,(c))
#define LCDhome() LCDwrite(LCDCMD,2)        // команда Return Home - курсор устанавливается в первое знакоместо
#define LCDclr()  LCDwrite(LCDCMD,1)        // команда Clear Display - очистить экран,
#define LCDon()      LCDwrite(LCDCMD,0x0c)        // команда Display On, курсор выключен

#define LCDsetG(a) LCDwrite(LCDCMD,(a&0x3f)|0x40)      
#define LCDsetC(a) LCDwrite(LCDCMD,(a&0x7f)|0x80)

#define TFLY 25000    // 9000 х 16 us = 144 ms
#define DELAY()    TMR1=0; while(TMR1‹TFLY)    

// Тактовая частота
#define CRISTAL_FREQ    8000000                // частота внутреннего генератора
#define FREQ_CORE        (CRISTAL_FREQ*4)    // частота работы ядра (с учетом PLL) - 32 МГц
#define Fcyc             (FREQ_CORE/2)        // частота выполнения инструкций - 16 МГц

// Макрос задержки
#define Delay_ms(n)        (n*(Fcyc/1000000)*1000)

//**************************************************  **************
// Биты конфигурации 
//**************************************************  **************
_CONFIG1(JTAGEN_OFF GCP_OFF GWRP_OFF BKBUG_OFF                );
_CONFIG2(IESO_OFF FNOSC_FRCPLL POSCMOD_NONE                             );

void LCDInit(void){
     
// инициализация модуля PMP для работы с ЖКИ 
     
PMCON 0x83BF;
    
PMMODE 0x3FF;
    
PMAEN 0x0001;
    
// init TMR1
    
T1CON=0x8030;        // Fosc/2, прескалер 1:256, 16 uS/tick
    // Задержка перед инициализацией LCD (время после подачи питания)
    
TMR1=0;
    while(
TMR11600);    // ожидание 1600x16 = 25,6 mS
    // инициализация ЖКИ WH-1602
    
PMADDR LCDCMD;    // выбор регистра команд
    
PMDATA 0x38;        // первая команда начальной инициализации
    
TMR1 0;            // задержка 4,8 mS
    
while(TMR1300){}

    
PMADDR LCDCMD;    // выбор регистра команд
    
PMDATA 0x38;        // вторая команда начальной инициализации
    
TMR1 0;            // задержка 128uS
    
while(TMR18){}

    
PMADDR LCDCMD;    // выбор регистра команд
    
PMDATA 0x38;        // третья команда начальной инициализации
    
TMR1 0;            // задержка 48 uS
    
while(TMR13){}

    
PMADDR LCDCMD;    // 
    
PMDATA 0x38;        // четвертая команда: 8-бит, 2 линии, 5х7 точек
    
TMR1 0;            // задержка 48 uS
    
while(TMR13){}

    
PMADDR LCDCMD;    //     
    
PMDATA 0x08;        // команда Display Off
    
TMR1 0;            // задержка 48 uS
    
while(TMR13){}

    
PMADDR LCDCMD;    //
    
PMDATA 0x01;        // команда Clear Display
    
TMR1 0;            // задержка 2,4 mS
    
while(TMR1150){}

    
PMADDR LCDCMD;    //     
    
PMDATA 0x06;        // команда Entry Mode Set (инкремент позиции курсора, экран не сдвигается)
    
TMR1 0;            // задержка 48 uS
    
while(TMR13){}
// LCDInit

void LCDInit_1(){
    
LATB=0;
    
__delay32(Delay_ms(100));

    
LATB=1‹‹9|1‹‹8|1‹‹7;
    
LATB=1‹‹14|1‹‹9|1‹‹8|1‹‹7;
    
asm("nop;");
    
LATB=1‹‹9|1‹‹8|1‹‹7;
    
__delay32(Delay_ms(10));

    
LATB=1‹‹9|1‹‹8|1‹‹7;
    
LATB=1‹‹14|1‹‹9|1‹‹8|1‹‹7;
    
asm("nop");
    
LATB=1‹‹9|1‹‹8|1‹‹7;
    
__delay32(Delay_ms(1));

    
LATB=1‹‹9|1‹‹8|1‹‹7;
    
LATB=1‹‹14|1‹‹9|1‹‹8|1‹‹7;
    
asm("nop");
    
LATB=1‹‹9|1‹‹8|1‹‹7;
    
__delay32(Delay_ms(1));

    
LATB=1‹‹9|1‹‹8|1‹‹7;
    
LATB=1‹‹14|1‹‹9|1‹‹8|1‹‹7;
    
asm("nop");
    
LATB=1‹‹9|1‹‹8|1‹‹7;
    
__delay32(Delay_ms(1));

    
LATB=1‹‹9;
    
LATB=1‹‹14|1‹‹9;
    
asm("nop");
    
LATB=1‹‹9;
    
__delay32(Delay_ms(1));

    
LATB=1‹‹12;
    
LATB=1‹‹14|1‹‹12;
    
asm("nop");
    
LATB=1‹‹12;
    
__delay32(Delay_ms(5));

    
LATB=1‹‹11|1‹‹10;
    
LATB=1‹‹14|1‹‹11|1‹‹10;
    
asm("nop");
    
LATB=1‹‹11|1‹‹10;
    
__delay32(Delay_ms(1));                    // конец инициализации


    
LATB=1‹‹9|1‹‹10|1‹‹11|1‹‹12;            // включение индикатора
    
asm("nop; nop");
    
LATB=1‹‹14|1‹‹9|1‹‹10|1‹‹11|1‹‹12;
    
asm("nop; nop");

    
LATB=1‹‹9|1‹‹10|1‹‹11|1‹‹12;
    
__delay32(Delay_ms(1));

    
LATB=1‹‹13|1‹‹12|1‹‹10|1‹‹8|1‹‹7;        // выводим 5
    
asm("nop; nop");
    
LATB=1‹‹14|1‹‹13|1‹‹12|1‹‹10|1‹‹8|1‹‹7;
    
asm("nop; nop");

    
LATB=1‹‹13|1‹‹12|1‹‹10|1‹‹8|1‹‹7;
    
__delay32(Delay_ms(1));
}

char LCDread(int addr){
    
int dummy;
    while(
PMMODEbits.BUSY);
    
PMADDR addr;
    
dummy PMDATA;
    while(
PMMODEbits.BUSY);
    return(
PMDATA);
}
// LCDread

void LCDwrite(int addrchar c){
    while(
LCDbusy());
    while(
PMMODEbits.BUSY);
    
PMADDR addr;
    
PMDATA c;
}
// LCDwrite

void putsLCD(char *s){
    while(*
s)
        
putLCD(*s++);
}
// putsLCD 

void main(){
 
char i
 
CLKDIVbits.RCDIV=0;        // настройка постскалера генератора FRC
 
TRISA=0;
 
AD1PCFG 0xFFFF;           // Все выводы - цифровые
 // -----------------------------------------------------------------------------------------------------------------
 // Конфигурация параллельного порта
 // -----------------------------------------------------------------------------------------------------------------
 /*
    Подключение модуля PMP PIC24FJ64GA004 к ЖКИ (WH1602):
    D0-D7  -› PMD0-PMD7                     - шина данных
    R/~W   -› PMRD (RB13 - выв.11)       - чтение/~запись
    E      -› PMWR (RB14 - выв.14)       - строб
    A0(RS) -› PMA0 (RC7 - выв.3)         - доступ к регистрам контроллера ЖКИ
 */
 
T1CON=0x8030;        // Fosc/2, прескалер 1:256, 16 uS/tick
 
LCDInit();
 
LCDon();
 
putsLCD("Flying the PIC24");

 
LCDsetG(0);
 
putLCD(2);
 
putLCD(2);
 
putLCD(6);
 
putLCD(0x1f);
 
putLCD(6);
 
putLCD(2);
 
putLCD(2);
 
putLCD(0);

 
putLCD(0);
 
putLCD(4);
 
putLCD(0x0c);
 
putLCD(0x1c);
 
putLCD(0);
 
putLCD(0);
 
putLCD(0);
 
putLCD(0);

 while(
1){
  
LCDsetC(0x40+14);
  
putLCD(0);
  
putLCD(1);
  
DELAY();
  for(
i=13;i›=0;i--)
   {
    
LCDsetC(0x40+i);
    
putLCD(0);
    
putLCD(1);
    
putLCD(' ');
    
DELAY();
  }
  
LCDsetC(0x40);
  
putLCD(1);
  
putLCD(' ');
  
DELAY();
  
LCDsetC(0x40);
  
putLCD(' ');
  
LCDsetC(0x40+15);
  
putLCD(0);
  
DELAY();
  
//LATA=~LATA;
  //__delay32(Delay_ms(500));
 
}
}
//~ 
Пользуйтесь!
Вложения:
Тип файла: rar TEST_PIC24FJ64GA004.rar (51.4 Кб, 221 просмотров)

Последний раз редактировалось dosikus; 28.04.2010 в 20:57.
Petr_Dynin вне форума   Ответить с цитированием
Сказали "Спасибо" Petr_Dynin
Dtolok (28.04.2010)
Непрочитано 28.04.2010, 21:39   #30
DL36
Вид на жительство
 
Регистрация: 06.10.2006
Сообщений: 329
Сказал спасибо: 4
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
DL36 на пути к лучшему
По умолчанию Re: Осваиваем PIC24

Сообщение от Petr_Dynin Посмотреть сообщение
Код:
	LATB=1‹‹9|1‹‹8|1‹‹7;
	LATB=1‹‹14|1‹‹9|1‹‹8|1‹‹7;
Не знаю как кому, но мне такие записи глаз режут, да и сопровождать подобный код очень тяжело.
Мне кажется так и понятнее будет и сопровождать проще
Код:
#define   LED0  B, 7, H 
#define   LED1  B, 8, H 
#define   LED2  B, 9, H 
///

LATB =	((1 ‹‹ BITNUM(LED0 )) | (1 ‹‹ BITNUM(LED1 )) | (1 ‹‹ BITNUM(LED2 )) );
пример
DL36 вне форума   Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо DL36 за это сообщение:
3comma62 (12.03.2016), dosikus (28.04.2010)
Ответ

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Осваиваем USBee Kabron Микроконтроллеры, АЦП, память и т.д 2196 29.11.2020 22:43
Proteus PIC24 CNEN2??Gluk?? rubel Proteus, KiCAD и другие ECAD 1 09.06.2011 17:45
PIC24 CTMU rubel Микроконтроллеры, АЦП, память и т.д 11 20.05.2010 15:56
PIC24 terminal VGA + отладка с USBee AX PRO dosikus Микроконтроллеры, АЦП, память и т.д 7 23.04.2010 19:08
MPLAB C Compiler for PIC24 dsPIC avr123-nm-ru Микроконтроллеры, АЦП, память и т.д 4 25.11.2009 22:53


Часовой пояс GMT +4, время: 20:01.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot