کلا کد رو عوض کردم که یه وقت شیفت نده رو پای های lcd
در ضمن lcd رو هم کلا بردم رو پورت 1 و دیگه مساله کانفیلیکت نداره
adc هم روی پورت 0 پین 23
بازم نشون نمیده مقدار ADC رو
دیباگ کردم میره اینجا میمونه
کد:
HardFault_Handler\
PROC
EXPORT HardFault_Handler [WEAK]
B .
ENDP
کد فعلی هم اینه
کد:
#include <lpc17xx.h>
#include "delay.h"
#define family_lpc17xx
#define TFTLCD_DATAPORT_1
#define TFTLCD_DATAPORT_OFFSET 15
#define TFTLCD_CONTROLPORT_1
#define TFTLCD_RST 1// 26
#define TFTLCD_RS 9// 23
#define TFTLCD_CS 10 //22
#define TFTLCD_RD 4// 25
#define TFTLCD_WR 8//24
#define PORTRAIT
#include "tftlcd_functions.h"
//#include "Font_24x16.h"
//#include "image.h"
int read_adc(void)
{
int i;
LPC_ADC->ADCR |=0X01000000;//start conversation
do
{
i=LPC_ADC->ADDR0;//read AD data register
}
while((i&0x80000000)==0);//wait for end of AD conversation
return (i>>6) & 0x03ff;//bit 6:15 are 10 bit ad value
}
int main()
{
int value;
LPC_SC->PCONP |=(1<<12);//return ADC on with set bit12
LPC_PINCON->PINSEL1=0x4000;//set p0.23 as adc input
LPC_ADC->ADCR=0x00200301;
SystemInit();
tftlcd_init();
tftlcd_clear();
tftlcd_gotoxy(0,0);
tftlcd_puts("Start ADC",Yellow,Red,0);
//delay_ms(500);
while(1)
{
unsigned char str[10];
sprintf(str,"%d",read_adc());
tftlcd_gotoxy(0,1);
tftlcd_puts(str,Yellow,Red,0);
tftlcd_gotoxy(0,2);
tftlcd_putchar(value,Yellow,Red,0);
//delay_us(5);
}
}
خسته شدم دیگه از صبح سر یه adc که راه انداختم قبلا گیر کردم
تو lcd کاراکتری راه انداختم مثل هلو اینجا نمیدونم چرا اصلا جواب نمیده
از sprintf پایین تر نمیره اصلا که چاپ شه خود sprintf هم دیباگ زدم نمیرسه میره تو startup_lpc17xx گیر میکنه
یکی بگه چیکار کنم