پاسخ : [برنامه نمونه] هدر جدید ماژول "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) { } }
دیدگاه