в общем теперь с самой библиотекой проблемы:
Спойлер
Код: Выделить всё
/*
it is AVR driver for LCD used in nokia 1616
based on STM version from http://robobuild.ru/ndex.php?itid=2
compilation with https://sourceforge.net/projects/nokiasuperbreak/
translated and modified by axillent@gmail.com
you need to configure before including this file:
#define LCD_PORT PORTC // output port
#define LCD_DDR DDRC // port configuration
#define LCD_RST PINC0 // reset pin
#define LCD_CS PINC1 // slave select pin
#define LCD_SDA PINC2 // data pin
#define LCD_CLK PINC3 // clock pin
if by some reason you got slow display you will probably need to define SPI delay in microseconds
#define LCD_SPI_DELAY 10
normal orientation of nokia1616 - y is long side, x is short, (0, 0) is most closest to the connector left side
if you want to have display be rotated clock vise 90 degrees use this:
#define LCD_ROTATE90
*/
#ifndef _NOKIA1616_H
#define _NOKIA1616_H
#if !defined(LCD_PORT) || !defined(LCD_DDR) || !defined(LCD_RST) || !defined(LCD_CS) || !defined(LCD_SDA) || !defined(LCD_CLK)
#error You need to define ports & pins for LCD usage
#endif
#include <mega328p.h>
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// constants & types definition
#define LCD_CTRL_WIDTH 129
#define LCD_CTRL_HEIGHT 129
#define LCD_CTRL_X_OFFSET 2
#define LCD_CTRL_Y_OFFSET 1
inf typedef uint16_t rgb_color16bit; ТУТ ОЧЕНЬ ПЛОХО РУГАЕТСЯ
// pack r & g & b into color structure
#define rgb_color_pack(r, g, b) ((rgb_color16bit)r << 11) | ((rgb_color16bit)g << 5) | ((rgb_color16bit)b)
// repack from 16bit presentation into color structure
#define rgb_color_repack(color) (rgb_color16bit)color
#define rgb_color_red(color) (color >> 11) | 0x1F
#define rgb_color_green(color) (color >> 5) | 0x3F
#define rgb_color_blue(color) (color | 0x1F)
#define LCD_VGA_BLACK rgb_color_repack(0x0000)
#define LCD_VGA_WHITE rgb_color_repack(0xFFFF)
#define LCD_VGA_RED rgb_color_repack(0xF800)
#define LCD_VGA_GREEN rgb_color_repack(0x1FE0)
#define LCD_VGA_BLUE rgb_color_repack(0x001F)
#define LCD_VGA_SILVER rgb_color_repack(0xC618)
#define LCD_VGA_GRAY rgb_color_repack(0x8410)
#define LCD_VGA_MAROON rgb_color_repack(0x8000)
#define LCD_VGA_YELLOW rgb_color_repack(0xFFE0)
#define LCD_VGA_OLIVE rgb_color_repack(0x8400)
#define LCD_VGA_LIME rgb_color_repack(0x07E0)
#define LCD_VGA_AQUA rgb_color_repack(0x07FF)
#define LCD_VGA_TEAL rgb_color_repack(0x0410)
#define LCD_VGA_NAVY rgb_color_repack(0x0010)
#define LCD_VGA_FUCHSIA rgb_color_repack(0xF81F)
#define LCD_VGA_PURPLE rgb_color_repack(0x8010)
// clock vise rotation
// normal is the default orientation of selected LCD
enum { LCD_ORIENTATION_NORMAL=0, LCD_ORIENTATION_90, LCD_ORIENTATION_180, LCD_ORIENTATION_270 };
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// user functions definition
/**
* Sends command to lcd
*
* @data command to be send
*/
void nlcdSendCmd(uint8_t data);
/**
* Sends data to lcd
*
* @data data to be send
*/
void _nlcdSendData(uint8_t data); И ТУТ ОЧЕНЬ ПЛОХО РУГАЕТСЯ
/**
* inittialize lcd
*/
void nlcdInit();
/**
* Clear display by specified color
*
* @color color to use for clear
*/
void nlcdClear();
/**
* CSetting background color
*
* @color background color to be set
*/
void nlcdSetBackgroundColor(rgb_color16bit color);
void nlcdGotoCharXY(uint8_t x, uint8_t y);
void nlcdCharXY(uint8_t x, uint8_t y, rgb_color16bit color, char c);
void nlcdChar(rgb_color16bit color, char c);
void nlcdString(rgb_color16bit color, const char* str);
void nlcdStringXY(char x, char y, rgb_color16bit color, const char* str);
void nlcdStringP(rgb_color16bit color, const char* str);
void nlcdStringXYP(char x, char y, rgb_color16bit color, const char* str);
void nlcdSetFont(const uint8_t* font);
char nlcdFontLastChar();
char nlcdFontFirstChar();
void nlcdSetOrientation(uint8_t or);
uint8_t nlcdGetWidth();
uint8_t nlcdGetHeight();
#ifndef LIB_NOINLINE
#include "nokia_lcd_driver_1616.c"
#endif
#endifError: C:\cvavr\my program display\nokia_lcd_driver_1616.h(43), #included from: display.c: '(' expected
и
Error: C:\cvavr\my program display\nokia_lcd_driver_1616.h(82), #included from: display.c: declaration syntax error
p.s. тяжело разбираться, когда только начал. будь рабочая библиотека я бы еще может и смог бы, а так рискуя нарваться на критику все же вновь прошу помощи.
уважаемый Аlex, я объясню вам - да, возможно я слегка туповат, но изучение с cvavr я начал со своего первого проекта давилки, который почти заканчиваю, но как всегда лучшее враг хорошего.
я пошел не от начала и просмотрев готовые примеры мигающих светодиодов и прочего очень простого кода взялся за написание кода под биполярный шаговик, где справился сам пусть и не без некого геморроя, и там мне никто не подсказывал, что и куда вставлять. а это замечу был мой самый первый опыт общения с cvavr, и я справился, и теперь, забегая вперед, понимаю, что там и к чему.
просто потому, что там был намек на готовые примеры и по ним не составило очень большого труда разобраться, а пересобрать под свои нужны было уже делом логики.
но лучшее враг хорошего и я задумался подключить ко всей этой конструкции дисплей, подключить батарейку и развести питание на 3,3, 5 и 12 вольт. все тут получается, кроме подключения дисплея.
и тут я так же взялся за готовый пример, что бы разобрать его по косточкам, как он заработает, но вот беда - ни один готовый пример не работает вообще. поэтому я и не могу в этом разобраться. с экранами оказалось все куда, как сложнее.
если не желаете помогать, то хотя бы не обзывайтесь пожалуйста.
можете по моему нику поискать тот самый проект, мне там подсказывали лишь направление, как делаете сейчас вы, но там было проще и я понимал то, что мне говорили, сейчас же я не понимаю, а разбираться с нуля по мануалу для меня не подъемно, а вот взять пример, на его основе уже каждую строчку прошерстить на вопрос почему так, а не иначе уже подъемно и понятно.
я только учусь.




