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

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

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

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

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

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

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

HD44780 и PCF8574

Непрочитано 25.07.2016, 13:49  
Andrejchukov
Частый гость
 
Регистрация: 28.02.2011
Сообщений: 33
Сказал спасибо: 1
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
Andrejchukov на пути к лучшему
По умолчанию HD44780 и PCF8574

Уважаемые Форумчане, поделитесь опытом.
Кто-нибудь работал с 1602 дисплеем через расширитель портов? Бьюсь с ним уже не первый день. Готовых библиотек (под AVR Си) я нигде не нашёл.
Большая просьба: разжуйте по буквам как должна идти запись байта в 4-битном режиме в индикатор (просто, без расширителя портов), какие задержки строба, и как провести инициализацию дисплея в 4 битном режиме (какие байты слать? по очереди, потому что те, что по даташиту у меня не работают).
Реклама:
Andrejchukov вне форума  
Непрочитано 25.07.2016, 13:53  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: HD44780 и PCF8574

Делал. Работало. Пару часов ушло, завелось с первого раза.
Вечером буду искать коды. Давно дело было.
Easyrider83 вне форума  
Непрочитано 25.07.2016, 14:21  
elon
Почётный гражданин KAZUS.RUN
 
Аватар для elon
 
Регистрация: 29.12.2004
Адрес: Bернулся в San Jose,CA,USA,Beach BLVD,свой дом,окна на океан-ничего личного,просто бизнес!
Сообщений: 1,098
Сказал спасибо: 22
Сказали Спасибо 425 раз(а) в 318 сообщении(ях)
elon на пути к лучшему
По умолчанию Re: HD44780 и PCF8574

Сообщение от Andrejchukov Посмотреть сообщение
библиотек (под AVR Си)
Возможно это вам поможет http://we.easyelectronics.ru/AVR/bib...lerov-avr.html
__________________
"Дворяне и их младые отроки должны всегда меж собою говорить на ВЫ и на иностранных языках, дабы тем навыкнуть могли, и чтобы их можно было от других незнающих болванов распознать."
Уложение о поведении (с) царь Пётр I
elon вне форума  
Непрочитано 25.07.2016, 14:33  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,134
Сказал спасибо: 202
Сказали Спасибо 3,285 раз(а) в 2,151 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: HD44780 и PCF8574

во. элон опять приперся. в отпуске шоль был?? дает как всегда тупые советы

я буквально вчера запустил на стм32ф030 именно такой дисплей.
за 3 минуты нашел как его инитить и даже не вдумываясь в 3 часа ночи тупо вот по этому мануалу проинитил и все поперло с первого раза

http://vrtp.ru/index.php?showtopic=21620&st=0

если соплями повозить хочется то вот это почитай
http://easystm32.ru/indication/22-hd44780-and-stm32

ну понятно все это надо изобразить через иц шину. что еще легче даже с моей точки зрения
__________________
кагмаподэ магмаподэ

Последний раз редактировалось индюк; 25.07.2016 в 14:37.
индюк вне форума  
Непрочитано 25.07.2016, 14:37  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: HD44780 и PCF8574

У меня была библиотека для 1602 еще в середине прошлого столетия написана еще под АРМы, которые из говна и камня делали. Просто драйвер PCF прикрутил и все заработало. Честно говоря, даже тайминги не проверял.
Easyrider83 вне форума  
Непрочитано 25.07.2016, 14:56  
elon
Почётный гражданин KAZUS.RUN
 
Аватар для elon
 
Регистрация: 29.12.2004
Адрес: Bернулся в San Jose,CA,USA,Beach BLVD,свой дом,окна на океан-ничего личного,просто бизнес!
Сообщений: 1,098
Сказал спасибо: 22
Сказали Спасибо 425 раз(а) в 318 сообщении(ях)
elon на пути к лучшему
По умолчанию Re: HD44780 и PCF8574

Сообщение от индюк Посмотреть сообщение
во. элон опять приперся. в отпуске шоль был?? дает как всегда тупые советы
А над вами любезнейший in Duke время не властно ... как были хамлом и невежей так им и остались ....
__________________
"Дворяне и их младые отроки должны всегда меж собою говорить на ВЫ и на иностранных языках, дабы тем навыкнуть могли, и чтобы их можно было от других незнающих болванов распознать."
Уложение о поведении (с) царь Пётр I
elon вне форума  
Непрочитано 25.07.2016, 15:32  
Andrejchukov
Частый гость
 
Регистрация: 28.02.2011
Сообщений: 33
Сказал спасибо: 1
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
Andrejchukov на пути к лучшему
По умолчанию Re: HD44780 и PCF8574

Сообщение от индюк Посмотреть сообщение

http://vrtp.ru/index.php?showtopic=21620&st=0

если соплями повозить хочется то вот это почитай
http://easystm32.ru/indication/22-hd44780-and-stm32

ну понятно все это надо изобразить через иц шину. что еще легче даже с моей точки зрения
Спасибо большое за ссылки. Всё-таки проблема была в неправильной инициализации, а не в задержках строба. По сравнению с даташитом на МЭЛТ дисплей - совсем другая последовательность инициализации. Ещё раз - спасибо, теперь допишу свою библиотеку на CVAVR.
Andrejchukov вне форума  
Непрочитано 25.07.2016, 16:00  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,134
Сказал спасибо: 202
Сказали Спасибо 3,285 раз(а) в 2,151 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: HD44780 и PCF8574

Да. Инит там странный. Совершенно непонятно зачем там первые три посылки, но я просто сделал и оно заработало.
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 25.07.2016, 23:51  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: HD44780 и PCF8574

Мой вариант драйвера
Заголовок:
Код:
/* H/W defined layer, bit definitions according schematic connections */
#define LCD_BackLight_BIT          (1‹‹3)		// Backlight connected to PIN_3
#define LCD_RS_BIT                 (1‹‹0)		// RS connected to PIN_0
#define LCD_E_BIT                  (1‹‹2)		// EN connected to PIN_2
#define LCD_Data_Mask               0xF0
#define LCD_CMD_Mask                0x0E

typedef enum 
{
	HD44780_Cursor_Off                         =    0x0C,
	HD44780_Blink_Cursor_On                    =    0x0F,
	HD44780_Underline_Cursor_On                =    0x0E,
	HD44780_First_Row                          =    0x80,
	HD44780_Second_Row                         =    0xC0,
	HD44780_Third_Row                          =    0x94,
	HD44780_Fourth_Row                         =    0xD4,
	HD44780_Clear                              =    0x01,
	HD44780_Return_Home                        =    0x02,
	HD44780_Move_Cursor_Left                   =    0x10,
	HD44780_Move_Cursor_Right                  =    0x14,
	HD44780_Turn_On                            =    0x0C,
	HD44780_Turn_Off                           =    0x08,
	HD44780_Shift_Left                         =    0x18,
	HD44780_Shift_Right                        =    0x1C,
	HD44780_FunctionSet4bit2lines							 =		0x28,
	HD44780_NewString													 =	0x80 | 0x40,
}HD44780_RegTypeDef;

typedef struct
{
	/* Functions */
	char (*WritePage) (char I2C_Adrs, char * MemPos, char MemPosSize, char * buf, char size);
	void (*delay_func)(unsigned int ms);
	
	/* Settings */
	char I2C_Adrs;
}PCF8574_StructTypeDef;

char HD44780_Init(PCF8574_StructTypeDef * PCF8574_Struct);
char HD44780_PrintChar(PCF8574_StructTypeDef * PCF8574_Struct, char Data);
char HD44780_PrintString(PCF8574_StructTypeDef * PCF8574_Struct, char * string);
char HD44780_ClearScreen(PCF8574_StructTypeDef * PCF8574_Struct);
char HD44780_SetCursorPos(PCF8574_StructTypeDef * PCF8574_Struct, char row, char colum);
Сам драйвер:
Код:
#include "PCF8574+HD44780.h"

/* Internal variables */
char LCD_Data;

/* Internal functions */
char PCF8574_Write (PCF8574_StructTypeDef * PCF8574_Struct, char Data);
char HD44780_Write (PCF8574_StructTypeDef * PCF8574_Struct, char Data);
char HD44780_SendCMD (PCF8574_StructTypeDef * PCF8574_Struct, HD44780_RegTypeDef CMD);

/**
  * @brief  Initialize LCD
  * @param  PCF8574_Struct: pointer to structer with all settings defined
  * @retval 0 if succes or interface error code
  */
char HD44780_Init(PCF8574_StructTypeDef * PCF8574_Struct)
{
	char Result;
	PCF8574_Struct-›delay_func(17);
	Result = HD44780_Write(PCF8574_Struct, 0x30);
	PCF8574_Struct-›delay_func(1);
	HD44780_Write(PCF8574_Struct, 0x30);
	PCF8574_Struct-›delay_func(1);
	HD44780_Write(PCF8574_Struct, 0x30);
	PCF8574_Struct-›delay_func(1);
	HD44780_Write(PCF8574_Struct, 0x20);   //4 bit wide bus
						
	HD44780_SendCMD(PCF8574_Struct, HD44780_FunctionSet4bit2lines);
	HD44780_SendCMD(PCF8574_Struct, HD44780_Move_Cursor_Left);
	HD44780_SendCMD(PCF8574_Struct, HD44780_Clear);
	HD44780_SendCMD(PCF8574_Struct, HD44780_Blink_Cursor_On);
	
	HD44780_SendCMD(PCF8574_Struct, HD44780_Cursor_Off);
	HD44780_SendCMD(PCF8574_Struct, HD44780_Clear);
	PCF8574_Struct-›delay_func(10);
	return Result;
}

/**
  * @brief  Prints character at current cursor position
  * @param  PCF8574_Struct: pointer to structer with all settings defined
  * @param  Data: ASCII code of symbol
  * @retval 0 if succes or interface error code
  */
char HD44780_PrintChar(PCF8574_StructTypeDef * PCF8574_Struct, char Data)
{
	char Result;
	if (Data == '\n') 
		Result = HD44780_SendCMD (PCF8574_Struct, HD44780_NewString);
	else 
		Result = HD44780_Write(PCF8574_Struct, Data);
	return Result;
}

/**
  * @brief  Prints null-terminated string at current cursor position
  * @param  PCF8574_Struct: pointer to structer with all settings defined
  * @param  string: pointer to null-terminated string
  * @retval 0 if succes or interface error code
  */
char HD44780_PrintString(PCF8574_StructTypeDef * PCF8574_Struct, char * string)
{
	char Result = 0;
	while (*string && !Result) 
		Result = HD44780_PrintChar(PCF8574_Struct, *string++);
	return Result;
}

/**
  * @brief  Clears LCD
  * @param  PCF8574_Struct: pointer to structer with all settings defined
  * @retval 0 if succes or interface error code
  */
char HD44780_ClearScreen(PCF8574_StructTypeDef * PCF8574_Struct)
{
	return HD44780_SendCMD(PCF8574_Struct, HD44780_Clear);
}

/**
  * @brief  Moves cursor to curresponding position
  * @param  PCF8574_Struct: pointer to structer with all settings defined
  * @param  row: number of row
  * @param  row: number of colum
  * @retval 0 if succes or interface error code
  */
char HD44780_SetCursorPos(PCF8574_StructTypeDef * PCF8574_Struct, char row, char colum)
{
        char position = 0x80;
        if (row › 0) { position |= 0x40;}
        return HD44780_SendCMD(PCF8574_Struct, (HD44780_RegTypeDef)(position | colum));
}

char HD44780_SendCMD (PCF8574_StructTypeDef * PCF8574_Struct, HD44780_RegTypeDef CMD)
{
	char Result;
	PCF8574_Struct-›delay_func(5);
	LCD_Data &= ~LCD_RS_BIT;
	Result = HD44780_Write (PCF8574_Struct, (char)CMD & 0xF0);
	HD44780_Write (PCF8574_Struct, ((char)CMD & 0x0F)‹‹4);
	return Result;
}

char HD44780_Write (PCF8574_StructTypeDef * PCF8574_Struct, char Data)
{
	char Result;
	LCD_Data &= LCD_RS_BIT | LCD_BackLight_BIT;
	LCD_Data |= (Data & LCD_Data_Mask) | LCD_E_BIT;
	Result = PCF8574_Write(PCF8574_Struct, LCD_Data);
	LCD_Data &= ~LCD_E_BIT;
	PCF8574_Write(PCF8574_Struct, LCD_Data);
	return Result;
}

char PCF8574_Write (PCF8574_StructTypeDef * PCF8574_Struct, char Data)
{
	return PCF8574_Struct-›WritePage(PCF8574_Struct-›I2C_Adrs, &Data, 1, (void*)0, 0);
}

void HD44780_BackLight (char State)
{
  if (State)
		LCD_Data |= LCD_BackLight_BIT;
  else
		LCD_Data &= ~LCD_BackLight_BIT;
}
Инитиализация: (тоже мало понятная, но иначе не работает)
Код:
		PCF8574_StructTypeDef PCF8574_Struct;
		PCF8574_Struct.delay_func = vTaskDelay;
		PCF8574_Struct.WritePage = I2C_WritePage;
		PCF8574_Struct.I2C_Adrs = 0x40;
		HD44780_Init(&PCF8574_Struct);
Пример работы:
Код:
HD44780_PrintString(&PCF8574_Struct, "HelloWorld!");
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
NewWriter (26.07.2016)
Непрочитано 25.07.2016, 23:54  
Andrejchukov
Частый гость
 
Регистрация: 28.02.2011
Сообщений: 33
Сказал спасибо: 1
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
Andrejchukov на пути к лучшему
По умолчанию Re: HD44780 и PCF8574

Сообщение от Easyrider83 Посмотреть сообщение
Мой вариант драйвера
Заголовок:
Код:
/* H/W defined layer, bit definitions according schematic connections */
#define LCD_BackLight_BIT          (1‹‹3)		// Backlight connected to PIN_3
#define LCD_RS_BIT                 (1‹‹0)		// RS connected to PIN_0
#define LCD_E_BIT                  (1‹‹2)		// EN connected to PIN_2
#define LCD_Data_Mask               0xF0
#define LCD_CMD_Mask                0x0E

typedef enum 
{
	HD44780_Cursor_Off                         =    0x0C,
	HD44780_Blink_Cursor_On                    =    0x0F,
	HD44780_Underline_Cursor_On                =    0x0E,
	HD44780_First_Row                          =    0x80,
	HD44780_Second_Row                         =    0xC0,
	HD44780_Third_Row                          =    0x94,
	HD44780_Fourth_Row                         =    0xD4,
	HD44780_Clear                              =    0x01,
	HD44780_Return_Home                        =    0x02,
	HD44780_Move_Cursor_Left                   =    0x10,
	HD44780_Move_Cursor_Right                  =    0x14,
	HD44780_Turn_On                            =    0x0C,
	HD44780_Turn_Off                           =    0x08,
	HD44780_Shift_Left                         =    0x18,
	HD44780_Shift_Right                        =    0x1C,
	HD44780_FunctionSet4bit2lines							 =		0x28,
	HD44780_NewString													 =	0x80 | 0x40,
}HD44780_RegTypeDef;

typedef struct
{
	/* Functions */
	char (*WritePage) (char I2C_Adrs, char * MemPos, char MemPosSize, char * buf, char size);
	void (*delay_func)(unsigned int ms);
	
	/* Settings */
	char I2C_Adrs;
}PCF8574_StructTypeDef;

char HD44780_Init(PCF8574_StructTypeDef * PCF8574_Struct);
char HD44780_PrintChar(PCF8574_StructTypeDef * PCF8574_Struct, char Data);
char HD44780_PrintString(PCF8574_StructTypeDef * PCF8574_Struct, char * string);
char HD44780_ClearScreen(PCF8574_StructTypeDef * PCF8574_Struct);
char HD44780_SetCursorPos(PCF8574_StructTypeDef * PCF8574_Struct, char row, char colum);
Сам драйвер:
Код:
#include "PCF8574+HD44780.h"

/* Internal variables */
char LCD_Data;

/* Internal functions */
char PCF8574_Write (PCF8574_StructTypeDef * PCF8574_Struct, char Data);
char HD44780_Write (PCF8574_StructTypeDef * PCF8574_Struct, char Data);
char HD44780_SendCMD (PCF8574_StructTypeDef * PCF8574_Struct, HD44780_RegTypeDef CMD);

/**
  * @brief  Initialize LCD
  * @param  PCF8574_Struct: pointer to structer with all settings defined
  * @retval 0 if succes or interface error code
  */
char HD44780_Init(PCF8574_StructTypeDef * PCF8574_Struct)
{
	char Result;
	PCF8574_Struct-›delay_func(17);
	Result = HD44780_Write(PCF8574_Struct, 0x30);
	PCF8574_Struct-›delay_func(1);
	HD44780_Write(PCF8574_Struct, 0x30);
	PCF8574_Struct-›delay_func(1);
	HD44780_Write(PCF8574_Struct, 0x30);
	PCF8574_Struct-›delay_func(1);
	HD44780_Write(PCF8574_Struct, 0x20);   //4 bit wide bus
						
	HD44780_SendCMD(PCF8574_Struct, HD44780_FunctionSet4bit2lines);
	HD44780_SendCMD(PCF8574_Struct, HD44780_Move_Cursor_Left);
	HD44780_SendCMD(PCF8574_Struct, HD44780_Clear);
	HD44780_SendCMD(PCF8574_Struct, HD44780_Blink_Cursor_On);
	
	HD44780_SendCMD(PCF8574_Struct, HD44780_Cursor_Off);
	HD44780_SendCMD(PCF8574_Struct, HD44780_Clear);
	PCF8574_Struct-›delay_func(10);
	return Result;
}

/**
  * @brief  Prints character at current cursor position
  * @param  PCF8574_Struct: pointer to structer with all settings defined
  * @param  Data: ASCII code of symbol
  * @retval 0 if succes or interface error code
  */
char HD44780_PrintChar(PCF8574_StructTypeDef * PCF8574_Struct, char Data)
{
	char Result;
	if (Data == '\n') 
		Result = HD44780_SendCMD (PCF8574_Struct, HD44780_NewString);
	else 
		Result = HD44780_Write(PCF8574_Struct, Data);
	return Result;
}

/**
  * @brief  Prints null-terminated string at current cursor position
  * @param  PCF8574_Struct: pointer to structer with all settings defined
  * @param  string: pointer to null-terminated string
  * @retval 0 if succes or interface error code
  */
char HD44780_PrintString(PCF8574_StructTypeDef * PCF8574_Struct, char * string)
{
	char Result = 0;
	while (*string && !Result) 
		Result = HD44780_PrintChar(PCF8574_Struct, *string++);
	return Result;
}

/**
  * @brief  Clears LCD
  * @param  PCF8574_Struct: pointer to structer with all settings defined
  * @retval 0 if succes or interface error code
  */
char HD44780_ClearScreen(PCF8574_StructTypeDef * PCF8574_Struct)
{
	return HD44780_SendCMD(PCF8574_Struct, HD44780_Clear);
}

/**
  * @brief  Moves cursor to curresponding position
  * @param  PCF8574_Struct: pointer to structer with all settings defined
  * @param  row: number of row
  * @param  row: number of colum
  * @retval 0 if succes or interface error code
  */
char HD44780_SetCursorPos(PCF8574_StructTypeDef * PCF8574_Struct, char row, char colum)
{
        char position = 0x80;
        if (row › 0) { position |= 0x40;}
        return HD44780_SendCMD(PCF8574_Struct, (HD44780_RegTypeDef)(position | colum));
}

char HD44780_SendCMD (PCF8574_StructTypeDef * PCF8574_Struct, HD44780_RegTypeDef CMD)
{
	char Result;
	PCF8574_Struct-›delay_func(5);
	LCD_Data &= ~LCD_RS_BIT;
	Result = HD44780_Write (PCF8574_Struct, (char)CMD & 0xF0);
	HD44780_Write (PCF8574_Struct, ((char)CMD & 0x0F)‹‹4);
	return Result;
}

char HD44780_Write (PCF8574_StructTypeDef * PCF8574_Struct, char Data)
{
	char Result;
	LCD_Data &= LCD_RS_BIT | LCD_BackLight_BIT;
	LCD_Data |= (Data & LCD_Data_Mask) | LCD_E_BIT;
	Result = PCF8574_Write(PCF8574_Struct, LCD_Data);
	LCD_Data &= ~LCD_E_BIT;
	PCF8574_Write(PCF8574_Struct, LCD_Data);
	return Result;
}

char PCF8574_Write (PCF8574_StructTypeDef * PCF8574_Struct, char Data)
{
	return PCF8574_Struct-›WritePage(PCF8574_Struct-›I2C_Adrs, &Data, 1, (void*)0, 0);
}

void HD44780_BackLight (char State)
{
  if (State)
		LCD_Data |= LCD_BackLight_BIT;
  else
		LCD_Data &= ~LCD_BackLight_BIT;
}
Инитиализация: (тоже мало понятная, но иначе не работает)
Код:
		PCF8574_StructTypeDef PCF8574_Struct;
		PCF8574_Struct.delay_func = vTaskDelay;
		PCF8574_Struct.WritePage = I2C_WritePage;
		PCF8574_Struct.I2C_Adrs = 0x40;
		HD44780_Init(&PCF8574_Struct);
Пример работы:
Код:
HD44780_PrintString(&PCF8574_Struct, "HelloWorld!");
Спасибо, пригодится. Хочу тоже написать все функции в своей библиотеке.
Andrejchukov вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
Расширитель pcf8574 беда fsmoke TTL и CMOS логика 31 19.11.2015 04:04
HD44780 и клавиатура на его же ножках chapa Микроконтроллеры, АЦП, память и т.д 17 18.03.2014 10:37
PCF8574 alberio Микроконтроллеры, АЦП, память и т.д 8 14.10.2009 17:10
Будет ли работать в железе (PCF8574) R-a-v-e-n Микроконтроллеры, АЦП, память и т.д 18 22.06.2009 12:33


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.