پاسخ : مشکل ارتباط سریال بین میکرو و کامپیوتر
تو رو خدا یکی کمکم کنه! این کد :
ارسال کار می کنه ولی دریافت از طرف کامپیوتر نه!
فقط اون آخرشو ببینین دیگه ... سه تا پورت رو یکی یکی خروجی کردم(وصلن به ال ای دی برای تست برنامه)
تا ال ای دی دوم روشن میشه و کامپیوتر اطلاعات رو میگیره. ولی از طرف کامپیوتر می فرستم چیزی نمی گیره! (ال ای دی سوم روشن نمیشه)
در حالی که اگه rx و tx میکرو رو به هم وصل کنم کدی که میکرو میفرسته خودش دریافت می کنه و برنامه عمل می کنه(ال ای دی سوم روشن میشه)
مشکل چیه که وصل میکنم به max232 از طرف کامپیوتر نمی گیره؟!؟
تو رو خدا یکی کمکم کنه! این کد :
ارسال کار می کنه ولی دریافت از طرف کامپیوتر نه!
کد:
#include <mega16.h> #include <delay.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x18 ;PORTB #endasm #include <lcd.h> // Standard Input/Output functions #include <stdio.h> // Declare your global variables here char ch; void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00; DDRA=0xff; // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00; DDRB=0x00; // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0xff; DDRC=0xff; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 2400 UCSRA=0x00; UCSRB=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x19; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // LCD module initialization lcd_init(16); delay_ms (500); PORTA.0 = 1; putsf("Hello World! testing serial port ... !!"); PORTA.1 = 1; ch = getchar(); PORTA.2 = 1; while (1) { // Place your code here }; }
تا ال ای دی دوم روشن میشه و کامپیوتر اطلاعات رو میگیره. ولی از طرف کامپیوتر می فرستم چیزی نمی گیره! (ال ای دی سوم روشن نمیشه)
در حالی که اگه rx و tx میکرو رو به هم وصل کنم کدی که میکرو میفرسته خودش دریافت می کنه و برنامه عمل می کنه(ال ای دی سوم روشن میشه)
مشکل چیه که وصل میکنم به max232 از طرف کامپیوتر نمی گیره؟!؟
دیدگاه