پاسخ : [برنامه نمونه] هدر جدید ماژول "TFT LCD 2.8
شما کتابخونتون برای AVR آماده نشده؟
زمانی براش در نظر دارید؟
شما کتابخونتون برای AVR آماده نشده؟
زمانی براش در نظر دارید؟
/* LCD functions: */
//----------------------------------------------------------------------------------------------------
// Write Into The Index Register Of LCD
//----------------------------------------------------------------------------------------------------
void tftlcd_write_index_register(int command)
{
#ifdef TFTLCD_DATABUS_8
TFTLCD_RS_LOW;
TFTLCD_RD_HIGH;
TFTLCD_WR_LOW;
TFTLCD_DATAPORT_OUTPUT();
TFTLCD_DATAPORT_CLEAR;
TFTLCD_DATAPORT-> ODR = ((command>>8) << TFTLCD_DATAPORT_OFFSET);
TFTLCD_CS_LOW;
TFTLCD_CS_HIGH;
TFTLCD_DATAPORT_CLEAR;
TFTLCD_DATAPORT-> ODR = ((command) << TFTLCD_DATAPORT_OFFSET);
TFTLCD_CS_LOW;
TFTLCD_CS_HIGH;
TFTLCD_WR_HIGH;
TFTLCD_DATAPORT_INPUT();
#else
TFTLCD_RS_LOW;
TFTLCD_WR_LOW;
TFTLCD_RD_HIGH;
TFTLCD_DATAPORT_CLEAR;
TFTLCD_DATAPORT-> ODR = (command << TFTLCD_DATAPORT_OFFSET);
TFTLCD_CS_LOW;
TFTLCD_CS_HIGH;
TFTLCD_DATAPORT_CLEAR;
TFTLCD_RS_HIGH;
#endif
}
//----------------------------------------------------------------------------------------------------
// Write Into The WDR Register
//----------------------------------------------------------------------------------------------------
void tftlcd_write_wdr(int data)
{
#ifdef TFTLCD_DATABUS_8
int highbyte=(data & 0x0000FF00) >>8;
int lowbyte=(data & 0x000000FF);
TFTLCD_RS_HIGH;
TFTLCD_RD_HIGH;
TFTLCD_WR_LOW;
TFTLCD_DATAPORT_OUTPUT();
TFTLCD_DATAPORT_CLEAR;
TFTLCD_DATAPORT-> ODR = (highbyte << TFTLCD_DATAPORT_OFFSET);
TFTLCD_CS_LOW;
TFTLCD_CS_HIGH;
TFTLCD_DATAPORT_CLEAR;
TFTLCD_DATAPORT-> ODR = (lowbyte << TFTLCD_DATAPORT_OFFSET);
TFTLCD_CS_LOW;
TFTLCD_CS_HIGH;
TFTLCD_WR_HIGH;
TFTLCD_DATAPORT_INPUT();
#else
TFTLCD_RS_HIGH;
TFTLCD_WR_LOW;
TFTLCD_RD_HIGH;
TFTLCD_DATAPORT-> ODR = (data << TFTLCD_DATAPORT_OFFSET);
TFTLCD_CS_LOW;
TFTLCD_CS_HIGH;
#endif
}
//----------------------------------------------------------------------------------------------------
// Read RDR LCD Register
//----------------------------------------------------------------------------------------------------
int tftlcd_read_rdr(void)
{
#ifdef TFTLCD_DATABUS_8
int rdr_data;
TFTLCD_DATAPORT_INPUT();
TFTLCD_RS_HIGH;
TFTLCD_WR_HIGH;
TFTLCD_RD_LOW;
TFTLCD_CS_LOW;
TFTLCD_CS_LOW;
rdr_data = (TFTLCD_DATAPORT-> IDR & (0xFF << TFTLCD_DATAPORT_OFFSET));
TFTLCD_CS_HIGH;
rdr_data <<= 8;
TFTLCD_RD_HIGH;
delay_ms(100);
TFTLCD_RD_LOW;
TFTLCD_CS_LOW;
TFTLCD_CS_LOW;
rdr_data |= (TFTLCD_DATAPORT-> IDR & (0xFF << TFTLCD_DATAPORT_OFFSET));
TFTLCD_CS_HIGH;
TFTLCD_RD_HIGH;
TFTLCD_DATAPORT_OUTPUT();
return rdr_data;
#else
int rdr_data;
TFTLCD_DATAPORT_INPUT();
TFTLCD_RD_LOW;
TFTLCD_WR_HIGH;
TFTLCD_CS_LOW;
TFTLCD_RS_HIGH;
//rdr_data = (_TFTLCD_DATAPORT_PDSR_ & (0xFFFF << TFTLCD_DATAPORT_OFFSET));
rdr_data = ((TFTLCD_DATAPORT-> IDR >> TFTLCD_DATAPORT_OFFSET) & 0xFFFF);
TFTLCD_CS_HIGH;
TFTLCD_RD_HIGH;
TFTLCD_WR_LOW;
TFTLCD_RS_LOW;
TFTLCD_DATAPORT_OUTPUT();
return rdr_data;
#endif
}
Rebuild target 'Target 1' assembling SAM7.s... compiling 1.c... 1.c(46): warning: #1-D: last line of file ends without a newline linking... 1.axf: Error: L6218E: Undefined symbol tftlcd_draw_circle (referred from 1.o). 1.axf: Error: L6218E: Undefined symbol tftlcd_fill (referred from 1.o). 1.axf: Error: L6218E: Undefined symbol tftlcd_init (referred from 1.o). Target not created
#include <AT91SAM7X256.h>
#include <lib_AT91SAM7X256.H>
#include <stdio.h>
#include <delay.h>
#include "tftlcd_functions.h"
int main(void)
{
tftlcd_init();
tftlcd_fill(GREEN);
tftlcd_draw_circle(10,10,20,1,LIGHT_BLUE);
tftlcd_fill(GREEN);
tftlcd_draw_circle(20,10,20,1,LIGHT_BLUE);
tftlcd_fill(GREEN);
tftlcd_draw_circle(30,20,20,1,LIGHT_BLUE);
tftlcd_fill(GREEN);
tftlcd_draw_circle(40,20,20,1,LIGHT_BLUE);
tftlcd_fill(GREEN);
tftlcd_draw_circle(50,30,20,1,LIGHT_BLUE);
tftlcd_fill(GREEN);
tftlcd_draw_circle(60,30,20,1,LIGHT_BLUE);
tftlcd_fill(GREEN);
tftlcd_draw_circle(70,40,20,1,LIGHT_BLUE);
tftlcd_fill(GREEN);
tftlcd_draw_circle(80,40,20,1,LIGHT_BLUE);
tftlcd_fill(GREEN);
tftlcd_draw_circle(90,50,20,1,LIGHT_BLUE);
tftlcd_fill(GREEN);
tftlcd_draw_circle(100,50,20,1,LIGHT_BLUE);
tftlcd_fill(GREEN);
tftlcd_draw_circle(110,60,20,1,LIGHT_BLUE);
tftlcd_fill(GREEN);
tftlcd_draw_circle(110,60,20,1,LIGHT_BLUE);
tftlcd_fill(GREEN);
tftlcd_draw_circle(120,70,20,1,LIGHT_BLUE);
tftlcd_fill(GREEN);
while(1) {
}
}

oo:
که واسم سواله چرا در رابطه با بقیه کتابخونه ها این مشکل نبود ..
من دوتا پارامتر آخرشو نمیدونم چیه
دیدگاه