ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 5 از 5
  1. #1
    2010/12/18
    یزد
    663
    63

    مشکل با تطابق مقدار خوانده شده کارت با مقدار واقعی RF01D با اتمل استادیو

    سلام دوستان
    ی مشکل اساسی دارم سابق با همین تکنیک با کامپایلر های دیگه هم کارت رو میخواستم بخونم مقدارشو مکافاتی داشتم
    نمیدونم چیکار باید بکنم یکی لطفا لطفا منو راهتمایی کنه
    ببینید من میام اطلاعات رجیستر 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 میخونه و کنار هم میچینه که درست در میاد :|
    باسپاس فوق العاده ویژه
    اشک هایی که پس از هر شکست ریخته میشوند همان عرق هاییست که برای پیروزی ریخته نشده است
  2. #2
    2015/06/03
    321
    17

    پاسخ : مشکل با تطابق مقدار خوانده شده کارت با مقدار واقعی RF01D با اتمل استادیو

    کد:
    char str[]={'0','0','0','0','0','0','0','0','0','0'};
     while (1)
      {
        UCSRB=0x90; 
        gets(str,10);    
        UCSRB=0x00;  
            
        
        lcd_clear();
        lcd_puts(str);
  3. #3
    2010/12/18
    یزد
    663
    63

    پاسخ : مشکل با تطابق مقدار خوانده شده کارت با مقدار واقعی RF01D با اتمل استادیو

    نقل قول نوشته اصلی توسط korosh00
    کد:
    char str[]={'0','0','0','0','0','0','0','0','0','0'};
     while (1)
      {
        UCSRB=0x90; 
        gets(str,10);    
        UCSRB=0x00;  
            
        
        lcd_clear();
        lcd_puts(str);
    ممنون ولی تابع gets آرگمان دوم نمیگیره تو اتمل :sad:

    اضافه شده در تاریخ :
    بدون آرگمان دوم استفاده کردم ولی انگار میکرو ریست میشه مرتبا بر میگرده به ابتدای برنامه

    خواهشا دوستان کمک کنن

    اضافه شده در تاریخ :
    دوستان برنامه ای ک من نوشتم به این صورته :


    کد:
    /*
     * 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 str[]={'0','0','0','0','0','0','0','0','0','0'};
    	while (1)
    	{
    	LCDClear();	
    	LCDWriteStringXY(0,0,"Waiting");
    		//result = USART_Receive();
    	int i = 1 ; 
    while(1)
    {
    	str[i] = USART_Receive();
    	if (i >= 10) {i = 1 ; break ; }
    	i++;
    	
    }
    
    
    LCDClear();
    LCDWriteStringXY(0,0,str);
    _delay_ms(3000);
    
    	}
    }
    ولی روی ال سی دی کاراکتر های نامفهوم و هر سری رندوم ی چیز نشون میده
    :angry:
    ی دستور تو بسکام و کد ویژن فکر نمیکردم پیاده سازیش اینقدر سخت باشه :|


    دوستان پایه 6 و 7 ماژول که sw3 sw2 هستن رو به ترتیب هم gnd و vcc کردم و هم هردو رو gnd کردم هر دو مد همینه
    اشک هایی که پس از هر شکست ریخته میشوند همان عرق هاییست که برای پیروزی ریخته نشده است
  4. #4
    2010/12/18
    یزد
    663
    63

    پاسخ : مشکل با تطابق مقدار خوانده شده کارت با مقدار واقعی RF01D با اتمل استادیو

    دوستان مشکل حل شد ولی ی مشکل دیگه هنوز هست
    ممنون میشم همکاری کنید اینو حل کنیم

    در اولین باری که کارت نزدیک بشه کاملا درست خونده میشه عدد پشت کارت ( تصویر اول )

    ولی در دفعات بعدی به شکل تصویر دوم در میاد

    و واقعا نمیدونم مشکلش چیه


    تصویر عینا برابر با رشته پشت کارت که فقط دفعه اول صحیح است :


    یکی از تصاویر رندوم شده و بهم ریخته دفعات بعدی :



    سورس برنامه ای که نوشتم
    کد:
    /*
     * 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 str[]={'0','0','0','0','0','0','0','0','0','0'};
    		int i = 1 ; 
    	while (1)
    	{
    	LCDClear();	
    	LCDWriteStringXY(0,0,"Waiting");
    		//result = USART_Receive();
    i = 1 ; 
    while(1)
    {
    	str[i] = USART_Receive();
    	if (i >= 10) {i = 1 ; break ; }
    	i++;
    	
    }
    
    
    LCDClear();
    LCDWriteStringXY(0,0,str);
    _delay_ms(3000);
    
    for(int j = 0 ; j <=sizeof(str);j++) str[j] = '0' ; 
    	}
    }
    جالب اینه اون 8323 همیشه درسته و بهم نمیریزه

    اضافه شده در تاریخ :
    درست شد

    بعد از دریافت اطلاعات باید rxen رو غیرفعال کرد
    اشک هایی که پس از هر شکست ریخته میشوند همان عرق هاییست که برای پیروزی ریخته نشده است
  5. #5
    2015/05/11
    159
    18

    پاسخ : مشکل با تطابق مقدار خوانده شده کارت با مقدار واقعی RF01D با اتمل استادیو

    rxen چیه ؟؟؟؟
نمایش نتایج: از 1 به 5 از 5

موضوعات مشابه

  1. یک مشکل عجیب در اتمل استادیو
    توسط mehran901 در انجمن میکروکنترلرهای AVR
    پاسخ: 8
    آخرين نوشته: 2016/01/12, 15:23
  2. مشکل با مقدار خوانده شده از ADC
    توسط l90mehdi در انجمن NXP
    پاسخ: 7
    آخرين نوشته: 2015/07/23, 10:09
  3. تبدیل مقدار خوانده شده از adc میکرو به پارامتر مورد نظر
    توسط shaiigan در انجمن میکروکنترلرهای AVR
    پاسخ: 9
    آخرين نوشته: 2013/11/10, 14:23
  4. ثبت کمترين مقدار و بيشترين مقدار خوانده شده از adc
    توسط M3R-E در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2012/07/28, 20:28
  5. پاسخ: 1
    آخرين نوشته: 2010/09/17, 21:16

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •