SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проблема
SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проблема
Здравствуйте.
Я новичок в программировании MCU.
У меня на руках что то вроде KIT'a. USB debug adapter, LCD 16x2 dv16210, с8051а314, несколько реле, кнопок и светодиодов. Он рабочий и исправно показывал время. (мне он таким достался). я постепенно учусь. сначала запускал примеры, поправляя их под конфигурации "сборки". И я постепенно подошел к тому чтоб что-то вывести на ЛСД экран. перерыл кучу примеров, кстати ЛСД подключен по 4 битному интерфейсу.
распиновка:
Р3.1 - d4
Р3.2 - d5
Р3.3 - d6
Р3.4 - d7
Р1.4 - E
Р1.3 - RS
(RW - GND)
так вот нашел я пример для PIC Microcontroller (PIC18F4550).
и переделал... вот что получилось:
#include "C8051F310.h"
//-----------------------------------------------------------------------------
// Pin Declarations
//-----------------------------------------------------------------------------
#define lcdport P3
sbit rs = P1^3;
sbit en = P1^4;
unsigned int i=0;
unsigned char data0[] = "Hello world";
//-----------------------------------------------------------------------------
// Function Prototypes
//-----------------------------------------------------------------------------
void OSCILLATOR_Init (void);
void PORT_Init (void);
void DDD (unsigned long); //задержка 245000=1 секунда
void lcd_ini();
void dis_cmd(unsigned char);
void dis_data(unsigned char);
void lcdcmd(unsigned char);
void lcddata(unsigned char);
//-----------------------------------------------------------------------------
// main() Routine
//-----------------------------------------------------------------------------
void main (void)
{
PORT_Init(); // Initialize Port I/O
OSCILLATOR_Init (); // Initialize Oscillator
////////////////////////////////////////////////////////
// unsigned char data0[] = "HELLO World"; ////
// unsigned int i=0; ////
/////////////////////////////////////////////////////
P3 = 0;
lcd_ini(); // LCD initialization
while(data0!='\0')
{
dis_data(data0); //вывод по букве с задержкой в 100мс
DDD(24500); //100мс задержка
i++;
}
}
//-----------------------------------------------------------------------------
// Initialization Subroutines
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// OSCILLATOR_Init
//-----------------------------------------------------------------------------
void OSCILLATOR_Init (void)
{
OSCICN |= 0x03; // Configure internal oscillator for
// its maximum frequency (24.5 Mhz)
}
//-----------------------------------------------------------------------------
// PORT_Init
void PORT_Init (void)
{
P1MDOUT = 0x18;
P3MDOUT = 0x1E;
XBR1 = 0x40; // Enable crossbar and enable
// weak pull-ups
}
void DDD (unsigned long n) //задержка
{
while(n--); //delay
{
}
}
void lcd_ini()
{
dis_cmd(0x02); // To initialize LCD in 4-bit mode.
dis_cmd(0x28); // To initialize LCD in 2 lines, 5x7 dots and 4bit mode.
dis_cmd(0x0C);
dis_cmd(0x06);
dis_cmd(0x80);
}
void dis_cmd(unsigned char cmd_value)
{
unsigned char cmd_value1;
cmd_value1 = (cmd_value & 0xF0); // Mask lower nibble because RB4-RB7 pins are being used
lcdcmd(cmd_value1); // Send to LCD
cmd_value1 = ((cmd_value<<4) & 0xF0); // Shift 4-bit and mask
lcdcmd(cmd_value1); // Send to LCD
}
void dis_data(unsigned char data_value)
{
unsigned char data_value1;
data_value1=(data_value&0xF0);
lcddata(data_value1);
data_value1=((data_value<<4)&0xF0);
lcddata(data_value1);
}
void lcdcmd(unsigned char cmdout)
{
lcdport = cmdout; //Send command to lcdport=PORTB
rs = 0;
en = 1;
DDD(2450); //10мс
en = 0;
}
void lcddata(unsigned char dataout)
{
lcdport=dataout; //Send data to lcdport=P3
rs=1;
en=1;
DDD(2450); //10мс
en=0;
}
Вот как то так...
Вроде все правильно сделал. ошибок больше не выводит компилятор, но на экране ничего не появляется.
Помогите пожалуйста. мне надо заставить его выводить текст на экран.
Я новичок в программировании MCU.
У меня на руках что то вроде KIT'a. USB debug adapter, LCD 16x2 dv16210, с8051а314, несколько реле, кнопок и светодиодов. Он рабочий и исправно показывал время. (мне он таким достался). я постепенно учусь. сначала запускал примеры, поправляя их под конфигурации "сборки". И я постепенно подошел к тому чтоб что-то вывести на ЛСД экран. перерыл кучу примеров, кстати ЛСД подключен по 4 битному интерфейсу.
распиновка:
Р3.1 - d4
Р3.2 - d5
Р3.3 - d6
Р3.4 - d7
Р1.4 - E
Р1.3 - RS
(RW - GND)
так вот нашел я пример для PIC Microcontroller (PIC18F4550).
и переделал... вот что получилось:
#include "C8051F310.h"
//-----------------------------------------------------------------------------
// Pin Declarations
//-----------------------------------------------------------------------------
#define lcdport P3
sbit rs = P1^3;
sbit en = P1^4;
unsigned int i=0;
unsigned char data0[] = "Hello world";
//-----------------------------------------------------------------------------
// Function Prototypes
//-----------------------------------------------------------------------------
void OSCILLATOR_Init (void);
void PORT_Init (void);
void DDD (unsigned long); //задержка 245000=1 секунда
void lcd_ini();
void dis_cmd(unsigned char);
void dis_data(unsigned char);
void lcdcmd(unsigned char);
void lcddata(unsigned char);
//-----------------------------------------------------------------------------
// main() Routine
//-----------------------------------------------------------------------------
void main (void)
{
PORT_Init(); // Initialize Port I/O
OSCILLATOR_Init (); // Initialize Oscillator
////////////////////////////////////////////////////////
// unsigned char data0[] = "HELLO World"; ////
// unsigned int i=0; ////
/////////////////////////////////////////////////////
P3 = 0;
lcd_ini(); // LCD initialization
while(data0!='\0')
{
dis_data(data0); //вывод по букве с задержкой в 100мс
DDD(24500); //100мс задержка
i++;
}
}
//-----------------------------------------------------------------------------
// Initialization Subroutines
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// OSCILLATOR_Init
//-----------------------------------------------------------------------------
void OSCILLATOR_Init (void)
{
OSCICN |= 0x03; // Configure internal oscillator for
// its maximum frequency (24.5 Mhz)
}
//-----------------------------------------------------------------------------
// PORT_Init
void PORT_Init (void)
{
P1MDOUT = 0x18;
P3MDOUT = 0x1E;
XBR1 = 0x40; // Enable crossbar and enable
// weak pull-ups
}
void DDD (unsigned long n) //задержка
{
while(n--); //delay
{
}
}
void lcd_ini()
{
dis_cmd(0x02); // To initialize LCD in 4-bit mode.
dis_cmd(0x28); // To initialize LCD in 2 lines, 5x7 dots and 4bit mode.
dis_cmd(0x0C);
dis_cmd(0x06);
dis_cmd(0x80);
}
void dis_cmd(unsigned char cmd_value)
{
unsigned char cmd_value1;
cmd_value1 = (cmd_value & 0xF0); // Mask lower nibble because RB4-RB7 pins are being used
lcdcmd(cmd_value1); // Send to LCD
cmd_value1 = ((cmd_value<<4) & 0xF0); // Shift 4-bit and mask
lcdcmd(cmd_value1); // Send to LCD
}
void dis_data(unsigned char data_value)
{
unsigned char data_value1;
data_value1=(data_value&0xF0);
lcddata(data_value1);
data_value1=((data_value<<4)&0xF0);
lcddata(data_value1);
}
void lcdcmd(unsigned char cmdout)
{
lcdport = cmdout; //Send command to lcdport=PORTB
rs = 0;
en = 1;
DDD(2450); //10мс
en = 0;
}
void lcddata(unsigned char dataout)
{
lcdport=dataout; //Send data to lcdport=P3
rs=1;
en=1;
DDD(2450); //10мс
en=0;
}
Вот как то так...
Вроде все правильно сделал. ошибок больше не выводит компилятор, но на экране ничего не появляется.
Помогите пожалуйста. мне надо заставить его выводить текст на экран.
- Реклама
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
Я думаю, что у Вас неправильно могут быть настроены пути Project -> Tool Chain Integration. Я только что успешно прокомпилировал Ваш код.
Если с путями все ОК, сделайте Project -> Rebuild Project и приведите весь вывод из окна Build.
Код: Выделить всё
Invoking project defined compiler.
C:\SiLabs\MCU\IDEfiles\C51\BIN\C51.exe "test314.c" DB OE BR INCDIR(C:\SiLabs\MCU\Inc)
.
C51 COMPILER V8.18 - SN: Eval Version
COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2009
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
Link in progress...
C:\SiLabs\MCU\IDEfiles\C51\BIN\BL51.EXE @"C:\Documents and Settings\Sergei\My Documents\C8051\cyglink.txt"
BL51 BANKED LINKER/LOCATER V6.20 - SN: Eval Version
COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2009
"C:\Documents and Settings\Sergei\My Documents\C8051\test314.obj" TO "C:\Documents and Settings\Sergei\My Documents\C8051\test314" RS(256) PL(68) PW(78)
******************************************************************************
* RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 00B6H BYTE ( 8%) *
******************************************************************************
>>
>>
>>
Program Size: data=21.0 xdata=0 code=358
LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
спасибо. все компилится. кроме настроек были дурацкие ошибки в тексте программы. однако экран до сих пор не инициализировался. горит верхняя строчка из 16 прямоугольников и все.
у меня опять тупик)
Вот вроде бы все "нормально" (листинг в первом сообщении нормально компилится и загружается), но LCD не работает...
у меня опять тупик)
Вот вроде бы все "нормально" (листинг в первом сообщении нормально компилится и загружается), но LCD не работает...
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
Может у кого то есть опыт работы silabs+LCD ???
ЗЫ если задержка между командами на пример должна быть 50 микросекунд, а вместо этого она 10миллисекунд. это может быть причиной?
ЗЫ если задержка между командами на пример должна быть 50 микросекунд, а вместо этого она 10миллисекунд. это может быть причиной?
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
Silabs здесь непричем. Мне кажется у Вас неправильный алгоритм инициализации
LCD. Если он совместим с HD44780, посмотрите, например, здесь на стр. 46.
http://www.sparkfun.com/datasheets/LCD/HD44780.pdf
Именно, не хватает задержки на 15 мсек по включении, нет посылки трех команд
0х03, и т.п. Кроме того, после каждой посылки данных нужна задержка как
минимум на 4.7 мс, причем не на время стробирующего сигнала en, а после него
(у Вас ее в коде нет), а после посылки любой команды нужна задержка на 180
мксек или более.
LCD. Если он совместим с HD44780, посмотрите, например, здесь на стр. 46.
http://www.sparkfun.com/datasheets/LCD/HD44780.pdf
Именно, не хватает задержки на 15 мсек по включении, нет посылки трех команд
0х03, и т.п. Кроме того, после каждой посылки данных нужна задержка как
минимум на 4.7 мс, причем не на время стробирующего сигнала en, а после него
(у Вас ее в коде нет), а после посылки любой команды нужна задержка на 180
мксек или более.
- Реклама
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
Мяу всем..
При меры и описания можно тут посмотреть: http://www.silabs.ru/sources.php
Если на Си, то смотри прикрепление..
При меры и описания можно тут посмотреть: http://www.silabs.ru/sources.php
Если на Си, то смотри прикрепление..
- Вложения
-
- LCD-F330-DS18B20-v100.rar
- (51.92 КБ) 280 скачиваний
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
2 Ser60
буду разбираться с инициализацией.
2 МитяРа
LCD-F330-DS18B20-v100.rar я его качал, проект на ассемблере написан. его я в первую очередь достал
Я еще несколько примеров смотрел и везде используется LCDport (у меня это Р3, его Биты 1,2,3,4) и отправляются посылки-полубайты части d4-d7. т.е. команде в HEX 0x02 соответствует команда в BIN 00000010. и по LCDport отправляется 0010, т.е. на d7=0 d6=0 d5=1 d4=0. я правильно понял? если да, то вполне можно не делать в программе LCDport, а просто объявить порты для d4-d7 и побитно отправлять команды? но тогда как отправлять текст, т.е. буквы. в этом случаи каждую букву придется "вручную" отправлять?
Извиняюсь. возможно что то некорректно описал.
буду разбираться с инициализацией.
2 МитяРа
LCD-F330-DS18B20-v100.rar я его качал, проект на ассемблере написан. его я в первую очередь достал
Я еще несколько примеров смотрел и везде используется LCDport (у меня это Р3, его Биты 1,2,3,4) и отправляются посылки-полубайты части d4-d7. т.е. команде в HEX 0x02 соответствует команда в BIN 00000010. и по LCDport отправляется 0010, т.е. на d7=0 d6=0 d5=1 d4=0. я правильно понял? если да, то вполне можно не делать в программе LCDport, а просто объявить порты для d4-d7 и побитно отправлять команды? но тогда как отправлять текст, т.е. буквы. в этом случаи каждую букву придется "вручную" отправлять?
Извиняюсь. возможно что то некорректно описал.
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
Мя с Си совсем не дружу - пишу строго на Асме..
Т.е. твои 0010 должны быть d7=0 d6=0 d5=1 d4=0
Не знаю, что такое LCDport, но побитно отправлять тетраду, это изврат..
Посмотри, как делается в программе LCD16x1x4b.asm, там все подробно написано и если надо, то можно это в Си перевести..
P.S. Посмотрю, как помнится были примеры на Си..
Бит D7 самый старший, он-же левый..Vlad0o писал(а):отправляется 0010, т.е. на d4=0 d5=0 d6=1 d7=0. я правильно понял?
Т.е. твои 0010 должны быть d7=0 d6=0 d5=1 d4=0
Не знаю, что такое LCDport, но побитно отправлять тетраду, это изврат..
Посмотри, как делается в программе LCD16x1x4b.asm, там все подробно написано и если надо, то можно это в Си перевести..
P.S. Посмотрю, как помнится были примеры на Си..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
я с ассемблером поверхностно знаком (спасибо симесновским контроллерам)... да я вообще со всемя языками программирования поверхностно знаком 
На Си было бы проще разобраться, просто вывести текст на экран это к сожалению не конечная цель.
На Си было бы проще разобраться, просто вывести текст на экран это к сожалению не конечная цель.
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
Мя вспомнил, где видел прогу на Си для LCD-шника.. Это в книге Николайчука ещё от 2002 года.. там в конце примеры есть, правда для шины данных 8 бит..
Вот глава из более новой его книги: http://www.silabs.ru/pubs/G14.pdf
А зачем вообще применять 4-битный интерфейс для индикатора, неужели ножек не хватает ?
Вот глава из более новой его книги: http://www.silabs.ru/pubs/G14.pdf
А зачем вообще применять 4-битный интерфейс для индикатора, неужели ножек не хватает ?
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
Спасибо. сейчас посмотрю.
А ножек действительно не хватает. И он у меня уже так был подключен.
В с8051f314 у Р3 всего 4 пина, остальные порты заняты кнопками, реле, оптронами, светодиодами, датчиком температуры...
Я тут еще с инициализацией повозился:
void lcd_ini()
{
DDD(2450);
DDD(245);
DDD(245);
DDD(245);
DDD(245);
DDD(245);//15мс задержка после включения
dis_cmd(0х03);
DDD(245);
DDD(245);
DDD(245);
DDD(245);
DDD(245);//5мс задержка
dis_cmd(0х03);
DDD(245);
DDD(35);//1,7 мс задержка
dis_cmd(0х03);
DDD(245);
DDD(35);//1,7 мс задержка
dis_cmd(0x02);
DDD(245);
DDD(35);//1,7 мс задержка
//dis_cmd(0x02); // To initialize LCD in 4-bit mode.
dis_cmd(0x28); // To initialize LCD in 2 lines, 5x7 dots and 4bit mode.
DDD(245);
DDD(245);
DDD(245);;//5 мс задержка
DDD(245);
DDD(245);
dis_cmd(0x0C);
DDD(245);
DDD(245);//5 мс задержка
DDD(245);
DDD(245);
DDD(245);
dis_cmd(0x06);
DDD(245);
DDD(245);
DDD(245);
DDD(245);
DDD(245);//5 мс задержка
dis_cmd(0x80);
}
так при компиляции он выдает 3 ошибки *** ERROR C100 : unprintable character 0xF5 skipped, на строки с dis_cmd(0х03);
пока не нашел как избавиться от этого.
А ножек действительно не хватает. И он у меня уже так был подключен.
В с8051f314 у Р3 всего 4 пина, остальные порты заняты кнопками, реле, оптронами, светодиодами, датчиком температуры...
Я тут еще с инициализацией повозился:
void lcd_ini()
{
DDD(2450);
DDD(245);
DDD(245);
DDD(245);
DDD(245);
DDD(245);//15мс задержка после включения
dis_cmd(0х03);
DDD(245);
DDD(245);
DDD(245);
DDD(245);
DDD(245);//5мс задержка
dis_cmd(0х03);
DDD(245);
DDD(35);//1,7 мс задержка
dis_cmd(0х03);
DDD(245);
DDD(35);//1,7 мс задержка
dis_cmd(0x02);
DDD(245);
DDD(35);//1,7 мс задержка
//dis_cmd(0x02); // To initialize LCD in 4-bit mode.
dis_cmd(0x28); // To initialize LCD in 2 lines, 5x7 dots and 4bit mode.
DDD(245);
DDD(245);
DDD(245);;//5 мс задержка
DDD(245);
DDD(245);
dis_cmd(0x0C);
DDD(245);
DDD(245);//5 мс задержка
DDD(245);
DDD(245);
DDD(245);
dis_cmd(0x06);
DDD(245);
DDD(245);
DDD(245);
DDD(245);
DDD(245);//5 мс задержка
dis_cmd(0x80);
}
так при компиляции он выдает 3 ошибки *** ERROR C100 : unprintable character 0xF5 skipped, на строки с dis_cmd(0х03);
пока не нашел как избавиться от этого.
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
Спасибо за книжку. надо будет ее прочитать.
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
У мя ещё самая первая книга, ещё по Cygnal, а потом была "потолще" и уже по SiLabs-ам..
Мя интересно на твою схему глянуть..
Мя интересно на твою схему глянуть..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
А можно название толстой книги по Silabs'ам?
Как приедет тот кто дал мне эту сборку, попрошу схему нарисовать. Навороченная она жуть мне не разобраться
.
Могу только примерно комплектацию написать.
Как приедет тот кто дал мне эту сборку, попрошу схему нарисовать. Навороченная она жуть мне не разобраться
Могу только примерно комплектацию написать.
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
Она так-же и называется "x51-совместимые микроконтроллеры фирмы Silicon Laboratories (Cygnal)."
вот тут есть некоторые главы из неё: http://www.silabs.ru/publication.php
Есть ещё одна, другого автора: http://books.tr200.ru/v.php?id=482265
вот тут есть некоторые главы из неё: http://www.silabs.ru/publication.php
Есть ещё одна, другого автора: http://books.tr200.ru/v.php?id=482265
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
АА!!!! уже четвертый вариант написал. все компилится, но LCD побоку. ниче не хочет показывать(((

Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
Что-бы он показывал, его надо настроить со всеми необходимыми задержками и правильно подключить..
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
я тут ковырял код http://www.silabs.ru/pubs/G14.pdf
и у меня возник вопрос по некоторым строкам:
#define LCD_DATA P2 // Байт шины данных LCD
#define LCD_DATA_CF PRT2CF // Регистр настройки порта шины LCD
....
.....
...
void Set_Data (byte CH) // Выставить данные на шину
{
LCD_DATA_CF=0xFF;
LCD_DATA=CH;
}
я пытался повторить это, но у меня выдает 'PRT2(в моем случаи 3 )CF': undefined identifier
Еще я перебирал вот это http://invent-systems.narod.ru/shkola1.htm
там тоже встречается подобное:
#define LCD PORTD // определение порта
#define LCD_TRIS TRISD
....
...
LCD_TRIS = 0x0F; // настройка R0--R4 на ввод
поскольку я в предыдущих "такое" не использовал, то у меня складывается впечатление, что причина как раз тут, ну, и конечно в неправильных командах инициализации.
Может вы знаете, что это и как правильно с этим работать?
и у меня возник вопрос по некоторым строкам:
#define LCD_DATA P2 // Байт шины данных LCD
#define LCD_DATA_CF PRT2CF // Регистр настройки порта шины LCD
....
.....
...
void Set_Data (byte CH) // Выставить данные на шину
{
LCD_DATA_CF=0xFF;
LCD_DATA=CH;
}
я пытался повторить это, но у меня выдает 'PRT2(в моем случаи 3 )CF': undefined identifier
Еще я перебирал вот это http://invent-systems.narod.ru/shkola1.htm
там тоже встречается подобное:
#define LCD PORTD // определение порта
#define LCD_TRIS TRISD
....
...
LCD_TRIS = 0x0F; // настройка R0--R4 на ввод
поскольку я в предыдущих "такое" не использовал, то у меня складывается впечатление, что причина как раз тут, ну, и конечно в неправильных командах инициализации.
Может вы знаете, что это и как правильно с этим работать?
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
Насчёт Си ничего не скажу, но если порты настроены неправильно, то даже при верной программе можно ничего с них не прочитать правильно..
P.S. Насчёт Си, отправь в личку приглашение Chip115 - он на Сях писал недавно.. http://radiokot.ru/forum/viewtopic.php? ... 1&start=80
P.S. Насчёт Си, отправь в личку приглашение Chip115 - он на Сях писал недавно.. http://radiokot.ru/forum/viewtopic.php? ... 1&start=80
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Re: SiLabs c8051f314 + LCD DV16210 Не могу понять в чем проб
Книга Гладштейна, что рекомендовал МитяРа очень толковая, рекомендую. Еще есть книга по Силабовским контроллерам, написанная инженерами Силабс http://www.silabs.com/Marcom%20Document ... xtbook.zip. Правда, к сожалению обе книги довольно старые и не покрывают новые МК серии C8051F9xx, с кот. я сейчас работаю. Но Ваши F3xx там описаны нормально.
Кстати, Вы уверены, что функция DDD выдает требуемые задержки. Как Вы это проверили?
Пример выше заточен под PIC. Это его типичные имена регистров TRISD и т.п. Присоединяюсь к совету МитяРа освоить АСМ. Программа выдачи на ЖКИ подразумевает лишь пересыклу байтов или полубайтов, С здесь отдыхает. Ну или на худой конец разберитесь как интегрировать АСМ и С и используйте код работы с ЖКИ разработанный силлабовцами. Посмотрите даташит своего ЖКИ. Для некоторых из них фирма-изготовитель описывает алгоритм инициализации и работы с ним, включая примеры на С.
Кстати, Вы уверены, что функция DDD выдает требуемые задержки. Как Вы это проверили?
Пример выше заточен под PIC. Это его типичные имена регистров TRISD и т.п. Присоединяюсь к совету МитяРа освоить АСМ. Программа выдачи на ЖКИ подразумевает лишь пересыклу байтов или полубайтов, С здесь отдыхает. Ну или на худой конец разберитесь как интегрировать АСМ и С и используйте код работы с ЖКИ разработанный силлабовцами. Посмотрите даташит своего ЖКИ. Для некоторых из них фирма-изготовитель описывает алгоритм инициализации и работы с ним, включая примеры на С.


