Problemem jest użyta przeze mnie nazwa struktury s_buffer. W załączniku okrojone funkcje. i tak: w pliku LCD.c definuje strukurę struct s_buffer sMatrix_LCD a jej deklaracja zawarta jest w LCD.h #include <LPC214x.H> #include "LCD.h" //------spi struct SPI_Params { unsigned char ucCsPinNr; unsigned char ucCsPol; unsigned char ucCpha; unsigned char ucCpol; unsigned char *pucBytesForTx; unsigned char ucNrOfBytesForTx; unsigned char ucTxBytesOffset; unsigned char *pucBytesForRx; unsigned char ucNrOfBytesForRx; unsigned char ucRxBytesOffset; }; //-----struct def. struct SPI_Params aa; struct s_buffer sMatrix_LCD; //------------Function void Init_LCD(void) { } void goto_YX(unsigned char uc8Y, unsigned char uc8X) { aa.pucBytesForTx="string" ; } co ciekawe nawet po zakomentowaniu jej dekaracji kompilator nie protestuje. /* struct s_buffer { unsigned char x_position; unsigned char y_position; unsigned char ucPreviousBajt; unsigned char Matrix[7][67]; }; */ void Init_LCD(void); void goto_YX(unsigned char uc8Y, unsigned char uc8X); a wrzucając deklarację bezpośrednioz LCD.h do LCD.c jest błąd LCD.c(3): error: #101: "s_buffer" has already been declared in the current scope Czyżby nagłówek LPC214x może tak mieszać.. Po zmianie nazwy struktury jest wszystko ok. Ktoś może jest w stanie wyjaśnić? Keil uVision3; proc to LPC2141.
#include & lt; LPC214x.H & gt;
#include " LCD.h "
void SPI_InitMaster(void)
{
FIO0DIR |= 0x000000D0; // set SCK0, MOSI0, SSEL0 as output and MISO0 as input
FIO0SET |= 0x00000080; // set p0.7 (SSEL0) to high (disable SPI slave chip select)
PINSEL0 |= 0x5500; //SCK_0, MISO_0, MOSI_0, SSEL0 enable
S0SPCR = 0x20; //SPI master mode
S0SPCCR = 40; //SPI clock PCLK/S0SPCCR = & gt; 49.152/40 = 1.22MHz
}
/****************************************************************************************************/
int main(void)
{
SPI_InitMaster();
Init_LCD();
while(1)
{
S0SPDR=0xFF; //przepychanie
while(!(S0SPSR & 1 & lt; & lt; 7)){}
}
return 0;
}
/****************************************************************************************************/
/****************************************************************************************************/
/* I N T E R R U P T */
/****************************************************************************************************/
/****************************************************************************************************/
Static Call Graph - [C:\Documents and Settings\ginar\Pulpit\wtf\First_version.axf]
Static Call Graph for image C:\Documents and Settings\ginar\Pulpit\wtf\First_version.axf
# & #060CALLGRAPH & #062# ARM Linker, RVCT3.1 [Build 942]: Last Updated: Mon Mar 09 17:40:22 2009
Maximum Stack Usage = 64 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)
Call chain for Maximum Stack Depth:
__main & rArr; __rt_entry & rArr; __rt_lib_init & rArr; _fp_init
Functions with no stack information
Reset_Handler
__user_initial_stackheap
Undef_Handler
SWI_Handler
PAbt_Handler
DAbt_Handler
IRQ_Handler
FIQ_Handler
Mutually Recursive functions
Undef_Handler & nbsp; & nbsp; & nbsp; & rArr; & nbsp; & nbsp; & nbsp; Undef_Handler
SWI_Handler & nbsp; & nbsp; & nbsp; & rArr; & nbsp; & nbsp; & nbsp; SWI_Handler
PAbt_Handler & nbsp; & nbsp; & nbsp; & rArr; & nbsp; & nbsp; & nbsp; PAbt_Handler
DAbt_Handler & nbsp; & nbsp; & nbsp; & rArr; & nbsp; & nbsp; & nbsp; DAbt_Handler
IRQ_Handler & nbsp; & nbsp; & nbsp; & rArr; & nbsp; & nbsp; & nbsp; IRQ_Handler
FIQ_Handler & nbsp; & nbsp; & nbsp; & rArr; & nbsp; & nbsp; & nbsp; FIQ_Handler
Function Pointers
Reset_Handler
Undef_Handler
SWI_Handler
PAbt_Handler
DAbt_Handler
IRQ_Handler
FIQ_Handler
__main
__ARM_get_argv
main
__I_use_semihosting
Global Symbols
Reset_Handler (ARM, 0 bytes, Stack size unknown bytes, startup.o(RESET))
__main (ARM, 8 bytes, Stack size 0 bytes, __main.o(!!!main))
[Stack] Max Depth = 64 + Unknown Stack Size
Call Chain = __main & rArr; __rt_entry & rArr; __rt_lib_init & rArr; _fp_init
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;__scatterload
& gt; & gt; & nbsp; & nbsp; & nbsp;__rt_entry
__scatterload (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter))
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__main
__scatterload_rt2 (ARM, 52 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_entry
__scatterload_null (ARM, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
__scatterload_zeroinit (ARM, 44 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)
__ARM_argv_veneer (ARM, 16 bytes, Stack size 0 bytes, lib_init.o(.emb_text))
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (via Veneer)
__user_initial_stackheap (ARM, 0 bytes, Stack size unknown bytes, startup.o(.text))
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__user_setup_stackheap
SPI_InitMaster (ARM, 80 bytes, Stack size 0 bytes, main.o(.text))
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;main
main (ARM, 52 bytes, Stack size 8 bytes, main.o(.text))
[Stack] Max Depth = 8 Call Chain = main
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;Init_LCD
& gt; & gt; & nbsp; & nbsp; & nbsp;SPI_InitMaster
[Address Reference Count : 1] kernel.o(.text)
Init_LCD (ARM, 4 bytes, Stack size 0 bytes, lcd.o(.text))
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;main
goto_YX (ARM, 16 bytes, Stack size 0 bytes, lcd.o(.text), UNUSED)
__use_two_region_memory (ARM, 4 bytes, Stack size 0 bytes, stkheap2.o(.text), UNUSED)
__rt_stackheap_init (ARM, 36 bytes, Stack size 16 bytes, stkheap2.o(.text))
[Stack] Max Depth = 24 + Unknown Stack Size
Call Chain = __rt_stackheap_init & rArr; __user_setup_stackheap
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_stackheap_storage
& gt; & gt; & nbsp; & nbsp; & nbsp;__user_setup_stackheap
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_entry
__rt_heap_extend (ARM, 24 bytes, Stack size 8 bytes, stkheap2.o(.text), UNUSED)
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;__user_heap_extend (Weak Reference)
__rt_entry (ARM, 76 bytes, Stack size 16 bytes, kernel.o(.text))
[Stack] Max Depth = 64 + Unknown Stack Size
Call Chain = __rt_entry & rArr; __rt_lib_init & rArr; _fp_init
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;_platform_post_lib_init
& gt; & gt; & nbsp; & nbsp; & nbsp;_platform_post_stackheap_init
& gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (via Veneer)
& gt; & gt; & nbsp; & nbsp; & nbsp;exit (via BX)
& gt; & gt; & nbsp; & nbsp; & nbsp;__rt_stackheap_init
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__scatterload_rt2
& gt; & gt; & nbsp; & nbsp; & nbsp;__main
__rt_exit (ARM, 20 bytes, Stack size 8 bytes, kernel.o(.text))
[Stack] Max Depth = 16 Call Chain = __rt_exit & rArr; __rt_lib_shutdown
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_shutdown (via Veneer)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;exit (via Veneer)
__rt_abort (ARM, 8 bytes, Stack size 0 bytes, kernel.o(.text), UNUSED)
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;_sys_exit
__user_setup_stackheap (ARM, 96 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text))
[Stack] Max Depth = 8 + Unknown Stack Size
Call Chain = __user_setup_stackheap
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;__user_perproc_libspace
& gt; & gt; & nbsp; & nbsp; & nbsp;__user_initial_stackheap
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_stackheap_init
__rt_stackheap_storage (ARM, 12 bytes, Stack size 0 bytes, rt_stackheap_storage_intlibspace.o(.text))
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_stackheap_init
_sys_exit (ARM, 20 bytes, Stack size 0 bytes, sys_exit.o(.text), UNUSED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_abort
__user_libspace (ARM, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
__user_perproc_libspace (ARM, 0 bytes, Stack size 0 bytes, libspace.o(.text))
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__user_setup_stackheap
__user_perthread_libspace (ARM, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
exit (Thumb, 12 bytes, Stack size 0 bytes, exit.o(.text))
[Stack] Max Depth = 16 Call Chain = exit & rArr; __rt_exit & rArr; __rt_lib_shutdown
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;_call_atexit_fns (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;__rt_exit (via Veneer)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_entry
__rt_lib_init (Thumb, 184 bytes, Stack size 40 bytes, lib_init.o(.text))
[Stack] Max Depth = 48 Call Chain = __rt_lib_init & rArr; _fp_init
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;_fp_init (via Veneer)
& gt; & gt; & nbsp; & nbsp; & nbsp;__rt_locale (via Veneer)
& gt; & gt; & nbsp; & nbsp; & nbsp;_signal_init (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;_rand_init (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;_initio (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;_init_user_alloc (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;_init_alloc (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;_getenv_init (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;_get_lc_time (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;_get_lc_numeric (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;_get_lc_monetary (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;_get_lc_ctype (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;_get_lc_collate (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;_fp_trap_init (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;_clock_init (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;_atexit_init (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;__cpp_initialize__aeabi_ (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;__alloca_initialize (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;__Heap_DescSize (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;__ARM_exceptions_init (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;__ARM_argv_veneer (via Veneer)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_entry (via Veneer)
__rt_lib_shutdown (Thumb, 22 bytes, Stack size 8 bytes, lib_init.o(.text))
[Stack] Max Depth = 8 Call Chain = __rt_lib_shutdown
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;_terminateio (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;_terminate_user_alloc (Weak Reference)
& gt; & gt; & nbsp; & nbsp; & nbsp;__cxa_finalize (Weak Reference)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_exit (via Veneer)
_platform_post_stackheap_init (ARM, 12 bytes, Stack size 0 bytes, boardinit2.o(.text))
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_entry
_platform_post_lib_init (ARM, 16 bytes, Stack size 8 bytes, boardinit3.o(.text))
[Stack] Max Depth = 8 Call Chain = _platform_post_lib_init
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_entry
__I_use_semihosting (ARM, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text))
[Address Reference Count : 1] sys_exit.o(.text)
__use_no_semihosting_swi (ARM, 4 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
__rt_locale (ARM, 12 bytes, Stack size 0 bytes, rt_locale_intlibspace.o(.text))
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (via Veneer)
__ARM_get_argv (Thumb, 6 bytes, Stack size 4 bytes, no_argv.o(.text))
[Stack] Max Depth = 4 Call Chain = __ARM_get_argv
[Address Reference Count : 1] lib_init.o(.emb_text)
__rt_fp_status_addr (ARM, 12 bytes, Stack size 0 bytes, rt_fp_status_addr_intlibspace.o(.text))
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;_fp_init
_fp_init (ARM, 24 bytes, Stack size 8 bytes, fpinit.o(x$fpl$fpinit))
[Stack] Max Depth = 8 Call Chain = _fp_init
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_fp_status_addr
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (via Veneer)
__fplib_config_pureend_doubles (ARM, 0 bytes, Stack size unknown bytes, fpinit.o(x$fpl$fpinit), UNUSED)
Local Symbols
Undef_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;Undef_Handler
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;Undef_Handler
[Address Reference Count : 1] startup.o(RESET)
SWI_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;SWI_Handler
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;SWI_Handler
[Address Reference Count : 1] startup.o(RESET)
PAbt_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;PAbt_Handler
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;PAbt_Handler
[Address Reference Count : 1] startup.o(RESET)
DAbt_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;DAbt_Handler
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;DAbt_Handler
[Address Reference Count : 1] startup.o(RESET)
IRQ_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;IRQ_Handler
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;IRQ_Handler
[Address Reference Count : 1] startup.o(RESET)
FIQ_Handler (ARM, 4 bytes, Stack size unknown bytes, startup.o(RESET))
[Calls] & gt; & gt; & nbsp; & nbsp; & nbsp;FIQ_Handler
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;FIQ_Handler
[Address Reference Count : 1] startup.o(RESET)
Undefined Global Symbols
__ARM_exceptions_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
__Heap_DescSize (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
__alloca_initialize (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
__cpp_initialize__aeabi_ (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
__cxa_finalize (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_shutdown (Weak Reference)
__user_heap_extend (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED, UNUSED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_heap_extend (Weak Reference)
_atexit_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
_call_atexit_fns (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;exit (Weak Reference)
_clock_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
_fp_trap_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
_get_lc_collate (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
_get_lc_ctype (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
_get_lc_monetary (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
_get_lc_numeric (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
_get_lc_time (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
_getenv_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
_init_alloc (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
_init_user_alloc (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
_initio (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
_rand_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
_signal_init (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_init (Weak Reference)
_terminate_user_alloc (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_shutdown (Weak Reference)
_terminateio (Unknown, 0 bytes, Stack size 0 bytes, UNDEFINED)
[Called By] & gt; & gt; & nbsp; & nbsp; & nbsp;__rt_lib_shutdown (Weak Reference)
/*******************************************************************************
* LCD Nokia 3310 service function.
* 05-03-09 15:07
*******************************************************************************/
#ifndef __LCD
#define __LCD
/*HARD DEf:- & gt; Setting Lcd: Reset, DataCommand*/
#define DATA_COMMAND_LCD_Port FIO1DIR
#define DATA_COMMAND_LCD_PinNr 17
#define RESET_LCD_Port FIO0DIR
#define RESET_LCD_PinNr 29
//------
#define LCD_Data FIO1SET |=(1 & lt; & lt; DATA_COMMAND_LCD_PinNr)
#define LCD_Command FIO1CLR |=(1 & lt; & lt; DATA_COMMAND_LCD_PinNr)
#define ResetLCD_ON FIO0CLR |=(1 & lt; & lt; RESET_LCD_PinNr)
#define ResetLCD_OFF FIO0SET |=(1 & lt; & lt; RESET_LCD_PinNr)
/*LCD matrix dimension Byte organization*/
#define LCD_MATRIX_Xmax 84
#define LCD_MATRIX_Ymax 6 //maxY pixels/8
/*------enum & struct & variables-------------------------*/
enum Polar {Normal, Negativ};
enum Orientacja {VERTICAL, HORIZONTAL};
enum mode {LCD_set, LCD_clear, LCD_xor};
struct s_buffer //virtual matrix lcd
{
unsigned char x_position;
unsigned char y_position;
unsigned char ucPreviousBajt;
unsigned char Matrix[LCD_MATRIX_Xmax][LCD_MATRIX_Xmax];
};
struct s_Clipper //przycinanie grafiki
{
unsigned char left;
unsigned char right;
unsigned char top;
unsigned char bot;
};
/*------Hardware function--------------------------------*/
void Init_LCD(void);
void goto_YX(unsigned char uc8Y, unsigned char uc8X);
void Lcd_Update(void);
/*------Virytual function--------------------------------*/
void Lcd_Pixel(unsigned char uc_x, unsigned char uc_y, enum mode eMode, struct s_Clipper *pCliper);
#endif
#include & lt; LPC214x.H & gt;
#include " LCD.h "
//------spi
struct SPI_Params
{
unsigned char ucCsPinNr;
unsigned char ucCsPol;
unsigned char ucCpha;
unsigned char ucCpol;
unsigned char *pucBytesForTx;
unsigned char ucNrOfBytesForTx;
unsigned char ucTxBytesOffset;
unsigned char *pucBytesForRx;
unsigned char ucNrOfBytesForRx;
unsigned char ucRxBytesOffset;
};
//-----struct def.
struct SPI_Params aa;
struct s_buffer sMatrix_LCD;
//------------Function
void Init_LCD(void)
{
}
void goto_YX(unsigned char uc8Y, unsigned char uc8X)
{
aa.pucBytesForTx= " string " ;
}