با سلام خدمت تمامي اساتيد
من يه برنامه براي قطب نما نوشتم که توي شبيه ساز کامل جواب ميده
ولي موقعي در عمل اونو run ميکنم اجرا نميشه
مشکل برنامه با دو تا خط هست که توي حلقه while
برنامه هم طوري نوشتم که اگه از اون خط رد شد عدد 0 رو روي tft نمايش بده
موقعي اون خط کامنت ميشه 0 نمايش داده ميشه ولي موقعي اون خط کامنت نيست روي tft هيچي نمايش نميده
برنامه رو ميذارم اگه ميشه هر کس که کار کرده بگه مشکلش کجاست
کد:
#include <at91sam7x256.h>
#include <delay.h>
#include <TFTLCD.h>
#include <stdio.h>
 
char PORTRAIT = 0;
char data;
char LCD_Show[10];

int main(){
	
	tftlcd_init();
			
//I2c Configuration	PIO
 *AT91C_PIOA_PDR = (1<<10 | 1<<11);					  
 *AT91C_PIOA_ASR = (1<<10 | 1<<11);				    
 *AT91C_PIOA_MDER = (1<<10 | 1<<11);					  
 *AT91C_PIOA_PPUER = (1<<10 | 1<<11);
 *AT91C_PMC_PCER = (1<<9);
	
//I2c Configuration 
 *AT91C_TWI_CWGR = 0x00017676;	
 *AT91C_TWI_CR =1<<2;
	
 *AT91C_TWI_MMR = 0x3C0100;//Device Address(Compass) = 0x3C
 *AT91C_TWI_IADR = 0x00;
 *AT91C_TWI_THR = 0x71;
 while((*AT91C_TWI_SR & 0x4) == 0);
 tftlcd_putchar('0',BLUE,GREEN,1);
 while ((*AT91C_TWI_SR & 0x1) == 0);
 
	
 *AT91C_TWI_MMR = 0x3C0100;//Device Address(Compass) = 0x3C 
 *AT91C_TWI_IADR = 0x01;
 *AT91C_TWI_THR = 0xA0;
 while((*AT91C_TWI_SR & 0x4) == 0);	
 			  
 while ((*AT91C_TWI_SR & 0x1) == 0);
 
 *AT91C_TWI_MMR = 0x3C0100;//Device Address(Compass) = 0x3C
 *AT91C_TWI_IADR = 0x02;
 *AT91C_TWI_THR = 0x01;
 while((*AT91C_TWI_SR & 0x4) == 0);				  //(14)
 while ((*AT91C_TWI_SR & 0x1) == 0);
 tftlcd_putchar('1',BLUE,GREEN,1);
	
	while(1){
		
 *AT91C_TWI_MMR = 0x3D1100;			
 *AT91C_TWI_IADR = 0x06;	
	*AT91C_TWI_CR =0x3;
	tftlcd_putchar('2',BLUE,GREEN,1);
		
 while((*AT91C_TWI_SR & 0x2) == 0);
 data=*AT91C_TWI_RHR;
	tftlcd_putchar('3',BLUE,GREEN,1);
 		
 while((*AT91C_TWI_SR & 0x1) == 0);	
 delay_ms(10);
 tftlcd_putchar('4',BLUE,GREEN,1);		
			
 sprintf(LCD_Show,"%d",data);
 tftlcd_puts(LCD_Show,BLUE,GREEN,1);
 delay_ms(1000);	
 tftlcd_putchar('5',BLUE,GREEN,1);
		
 *AT91C_TWI_MMR = 0x3C0100;//Device Address(Compass) = 0x3C
 *AT91C_TWI_IADR = 0x03;
		
	}	
}
ممنون