پاسخ : راه اندازی ماژول nrf24l01p برای codevision (ارتباط بیسیم بین دو میکرو)
سلام
من میخوام در گیرنده به جای اینکه اطلاعات روی LCD نمایش داده بشه، از طریق UART به کامپیوتر منتقل بشه. از کد زیر استفاده کردم ولی نتیجهآآای که میگیرم تعداد 12 کاراکتر "M" در کامپیوتر هست. ولی انتظارم این بود که پشت سر هم کاراکتر M از گیرنده به کامپیوتر ارسال بشه.
کد فرستنده:
کد گیرنده:
سلام
من میخوام در گیرنده به جای اینکه اطلاعات روی LCD نمایش داده بشه، از طریق UART به کامپیوتر منتقل بشه. از کد زیر استفاده کردم ولی نتیجهآآای که میگیرم تعداد 12 کاراکتر "M" در کامپیوتر هست. ولی انتظارم این بود که پشت سر هم کاراکتر M از گیرنده به کامپیوتر ارسال بشه.
کد فرستنده:
کد:
#include <mega8.h> #include <delay.h> #include <nrf24l01p.h> // Declare your global variables here void main(void) { PORTB=0x00; DDRB=0x00; PORTC=0x00; DDRC=0x00; PORTD=0x00; DDRD=0x00; TCCR0=0x00; TCNT0=0x00; TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; MCUCR=0x00; TIMSK=0x00; ACSR=0x80; SFIOR=0x00; nrf_config(0); while (1) { if(nrf_state!=0) { sent_actived=1; nrf_state=0; } payload[0]=1; payload[1]='M'; sent(); } }
کد:
#include <delay.h> #include <nrf24l01p.h> #include <stdio.h> // Declare your global variables here void main(void) { unsigned char c; PORTB=0x00; DDRB=0x00; PORTC=0x00; DDRC=0x00; PORTD=0x00; DDRD=0x00; TCCR0=0x00; TCNT0=0x00; TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; MCUCR=0x00; TIMSK=0x00; UCSRA=0x00; UCSRB=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x33; ACSR=0x80; SFIOR=0x00; nrf_config(1); while (1) { if(nrf_state==1) { c=payload[1]; nrf_state=0; } putchar(c); } }
دیدگاه