سلام دوستان
ی مشکل اساسی دارم سابق با همین تکنیک با کامپایلر های دیگه هم کارت رو میخواستم بخونم مقدارشو مکافاتی داشتم
نمیدونم چیکار باید بکنم یکی لطفا لطفا منو راهتمایی کنه
ببینید من میام اطلاعات رجیستر UDR رو میخونم ولی با هر فرمتی دریافت میکنم و نشون میدم اصلا شبیه اطلاعات عددی روی کارت نیست
توجه شود بنده ماژول رو در مد RS232 راه اندازی کردم
مقدار رشته ای پشت کارت :
0008323148
مقدار های دریافت شده از UDR به ترتیب :
65
13
72
240
و سری دوم که کارت میزنم عدد اول 64 میشه کلا 65 و 13 تغییر میکنن هر سری ک کارت بخوره :angry:
آخه چرا ؟! :|
سورس :
اضافه شده در تاریخ :
چطور میشه شبیه به کدویژن شسته رفته تو اتمل استادیو بگیم مثلا 11 بایت اطلاعات دریافتی رو بهمون بده ؟ :angry:
اضافه شده در تاریخ :
دوستان ببینید
تنها مشکل بنده فقط همینه
تصویر زیر رو ببینید :
با کدویژن ی دستور تحت عنوان gets فکر کنم بود دارهک کتابخونه آماده خودشه آرگمان اول بافره و دوم تعداد بایت دریافتی
و بعدش اطلاعاتو نمایش میدن
نمونه کد کدویژنش که مثل بنز کار میکنه و دقیقا عبارت روی کارت رو برمیگردونه :
یکی لطفا به من بگه اون تابع gets چطور اطلاعات رو از UDR میخونه و کنار هم میچینه که درست در میاد :|
باسپاس فوق العاده ویژه
ی مشکل اساسی دارم سابق با همین تکنیک با کامپایلر های دیگه هم کارت رو میخواستم بخونم مقدارشو مکافاتی داشتم
نمیدونم چیکار باید بکنم یکی لطفا لطفا منو راهتمایی کنه
ببینید من میام اطلاعات رجیستر UDR رو میخونم ولی با هر فرمتی دریافت میکنم و نشون میدم اصلا شبیه اطلاعات عددی روی کارت نیست
توجه شود بنده ماژول رو در مد RS232 راه اندازی کردم
مقدار رشته ای پشت کارت :
0008323148
مقدار های دریافت شده از UDR به ترتیب :
65
13
72
240
و سری دوم که کارت میزنم عدد اول 64 میشه کلا 65 و 13 تغییر میکنن هر سری ک کارت بخوره :angry:
آخه چرا ؟! :|
سورس :
کد:
/* * RX.c * * Created: 11/01/2016 2:33:14 AM * Author : */ #include <avr/io.h> #include <util/delay.h> #ifndef F_CPU #define F_CPU 11059200UL #endif #include "lcd.h" #include <stdio.h> #define FOSC 11059200// Clock Speed #define BAUD 9600 #define MYUBRR FOSC/16/BAUD-1 void USART_Init( unsigned int ubrr) { /* Set baud rate */ UBRRH = (unsigned char)(ubrr>>8); UBRRL = (unsigned char)ubrr; /* Enable receiver and transmitter */ UCSRB = (1<<RXEN)|(1<<TXEN); /* Set frame format: 8data, 2stop bit */ UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0); } unsigned char USART_Receive( void ) { /* Wait for data to be received */ while ( !(UCSRA & (1<<RXC)) ) ; /* Get and return received data from buffer */ return UDR; } int main(void) { LCDInit(LS_NONE); LCDClear(); LCDWriteStringXY(0,0,"RFID Reader"); _delay_ms(2000); USART_Init ( MYUBRR ); char result = 0 ; char buf1[16]; while (1) { LCDClear(); LCDWriteStringXY(0,0,"Waiting"); result = USART_Receive(); sprintf(buf1,"Val:%d",result); LCDClear(); LCDWriteStringXY(0,0,buf1); _delay_ms(5000); } }
اضافه شده در تاریخ :
چطور میشه شبیه به کدویژن شسته رفته تو اتمل استادیو بگیم مثلا 11 بایت اطلاعات دریافتی رو بهمون بده ؟ :angry:
اضافه شده در تاریخ :
دوستان ببینید
تنها مشکل بنده فقط همینه
تصویر زیر رو ببینید :
با کدویژن ی دستور تحت عنوان gets فکر کنم بود دارهک کتابخونه آماده خودشه آرگمان اول بافره و دوم تعداد بایت دریافتی
و بعدش اطلاعاتو نمایش میدن
نمونه کد کدویژنش که مثل بنز کار میکنه و دقیقا عبارت روی کارت رو برمیگردونه :
کد:
#include <mega16.h> #include <stdio.h> #include <delay.h> #include <lcd.h> #asm .equ __lcd_port=0x1b //PORTA #endasm void main(void) { char str[11]; UCSRA=0x00; UCSRB=0x10; UCSRC=0x86; UBRRH=0x00; UBRRL=51; lcd_init(16); lcd_gotoxy(0,0); lcd_puts(" DMF313.IR"); delay_ms(1000); while (1) { lcd_gotoxy(0,1); gets(str,11); lcd_puts(str); } }
یکی لطفا به من بگه اون تابع gets چطور اطلاعات رو از UDR میخونه و کنار هم میچینه که درست در میاد :|
باسپاس فوق العاده ویژه
دیدگاه