اطلاعیه

Collapse
No announcement yet.

چشمک زدن یک LED هنگام اجرای تابع gets

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    چشمک زدن یک LED هنگام اجرای تابع gets

    دوستان سلام

    من توی برنامم تابع gets دارم و این منتظر میمونه تا دیتا بیاد.

    اما من میخوام همیشه یک LED چشمک بزنه.
    چیکار باید بکنم؟
    "زمان خط است نه دايره" چه ايده بدي بوده گرد ساختن ساعت. احساس ميکني هميشه فرصت تکرار است.
    ساعت دروغ ميگويد. دروغ. زمان بر گرد يک دايره نمي چرخد! زمان بر روي خطي مستقيم ميدود. و هيچگاه، هيچگاه، هيچگاه باز نميگردد.
    ساعت خوب، ساعت شني است! هر لحظه به تو يادآوري ميکند که دانه اي که افتاد ديگر باز نميگردد.
    پس بهتره يکم به ثانيه هايي که داريم فکر کنيم تا به راحتي از دستشون نديم....

    #2
    پاسخ : چشمک زدن یک LED هنگام اجرای تابع gets

    چاره کارت با تایمر و اینترپت هست

    دیدگاه


      #3
      پاسخ : چشمک زدن یک LED هنگام اجرای تابع gets

      نوشته اصلی توسط اشکان غفارزاده
      چاره کارت با تایمر و اینترپت هست
      الان این برنامه مشکلش چیه؟ اومدم از تایمر صفر استفاده کردم.
      الان فقط LED چشمک میزنه اما تابع GETS دیگه کار نمیکنه
      [code=c]
      #include <mega8.h>
      #include <alcd.h>
      #include <stdio.h>
      #include <delay.h>
      #include <string.h>
      #include <stdlib.h>
      interrupt [TIM0_OVF] void timer0_ovf_isr(void)
      {
      PORTB.2=1;
      delay_ms(300);
      PORTB.2=0;
      delay_ms(300);
      }
      void main(void)
      {

      PORTB=0x00;
      DDRB=0xff;
      PORTC=0x00;
      DDRC=0x00;
      PORTD=0x00;
      DDRD=0x00;

      TCCR0=0x05;
      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=0x01;
      UCSRA=0x00;
      UCSRB=0x10;
      UCSRC=0x86;
      UBRRH=0x00;
      UBRRL=0x33;
      ACSR=0x80;
      SFIOR=0x00;
      ADCSRA=0x00;
      SPCR=0x00;
      TWCR=0x00;
      lcd_init(16);
      #asm("sei&quot

      while (1)
      {

      char str[13];
      float result = -1;
      char strresult[13];
      char rfid[12][13]= //[تعداد کاراکتر های یک کارت][تعداد کارت]
      {
      "0C0061E91B9F", //rfid[0]
      "0C0060745149", //rfid[1]
      "0C0043232D41", //rfid[2]
      "0C00217D85D5", //rfid[3]
      "0C0027474D21", //rfid[4]
      "0C005AD4F97B", //rfid[5]
      "0C006149E2C6", //rfid[6]
      "FF0064E7215D", //rfid[7]
      "0C00607AB3A5", //rfid[8]
      };




      lcd_gotoxy(0,0);
      lcd_puts(" GOD"
      delay_ms(1000);
      while (1)
      {

      lcd_gotoxy(0,0);
      gets(str,12);
      lcd_clear();
      lcd_puts(str);
      }
      }
      }


      [/code]
      "زمان خط است نه دايره" چه ايده بدي بوده گرد ساختن ساعت. احساس ميکني هميشه فرصت تکرار است.
      ساعت دروغ ميگويد. دروغ. زمان بر گرد يک دايره نمي چرخد! زمان بر روي خطي مستقيم ميدود. و هيچگاه، هيچگاه، هيچگاه باز نميگردد.
      ساعت خوب، ساعت شني است! هر لحظه به تو يادآوري ميکند که دانه اي که افتاد ديگر باز نميگردد.
      پس بهتره يکم به ثانيه هايي که داريم فکر کنيم تا به راحتي از دستشون نديم....

      دیدگاه


        #4
        پاسخ : چشمک زدن یک LED هنگام اجرای تابع gets

        مشکل برنامتون رو نمیدونم ولی خب چرا اصلا با اینتراپت دریافت نمیکنید ؟

        head<=
        ...تشکر خدا...
        [img width=97 height=100]http://mahdi3d.persiangig.com/image/5280543_t.jpg[/img]

        دیدگاه


          #5
          پاسخ : چشمک زدن یک LED هنگام اجرای تابع gets

          نوشته اصلی توسط (مهدی رنجبر)m4hd1r
          مشکل برنامتون رو نمیدونم ولی خب چرا اصلا با اینتراپت دریافت نمیکنید ؟
          منظورتون اینه که دیتا رو به جای تابع gets از اینتراپت استفاده کنم؟

          میشه یکم در موردش توضیح بدید تا حالا نه با تایمر کار کردم نه با وقفه

          ممنون.
          "زمان خط است نه دايره" چه ايده بدي بوده گرد ساختن ساعت. احساس ميکني هميشه فرصت تکرار است.
          ساعت دروغ ميگويد. دروغ. زمان بر گرد يک دايره نمي چرخد! زمان بر روي خطي مستقيم ميدود. و هيچگاه، هيچگاه، هيچگاه باز نميگردد.
          ساعت خوب، ساعت شني است! هر لحظه به تو يادآوري ميکند که دانه اي که افتاد ديگر باز نميگردد.
          پس بهتره يکم به ثانيه هايي که داريم فکر کنيم تا به راحتي از دستشون نديم....

          دیدگاه


            #6
            پاسخ : چشمک زدن یک LED هنگام اجرای تابع gets

            نوشته اصلی توسط mo2_star
            منظورتون اینه که دیتا رو به جای تابع gets از اینتراپت استفاده کنم؟

            میشه یکم در موردش توضیح بدید تا حالا نه با تایمر کار کردم نه با وقفه

            ممنون.
            موقع رفتن تو ویزارد قسمت یوآرت برای قسمت گیرنده میتونه یک وقفه تنظیم بشه تیکش رو بزنید و یه سایز بافر هم ازتون میخواد
            این بافر چیه ؟ یک آرایه نرم افزاری کاراکتری هست که هر وقت چیزی به واحد بوآرت داخل بشه میاد و وارد یکی از این خونه ها میشه
            وقتی کد رو جنریت کنید یک سری کد بالای main میاد که شامل یک روتین وقفه هست به این صورت
            [code=c]
            interrupt [USART_RXC] void usart_rx_isr(void)
            {
            char status,data;
            status=UCSRA;
            data=UDR;
            if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
            {
            rx_buffer[rx_wr_index++]=data;
            #if RX_BUFFER_SIZE == 256
            // special case for receiver buffer size=256
            if (++rx_counter == 0) rx_buffer_overflow=1;
            #else
            if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
            if (++rx_counter == RX_BUFFER_SIZE)
            {
            rx_counter=0;
            rx_buffer_overflow=1;
            }
            #endif
            }
            }

            [/code]
            خب اینجا چی داریم؟
            یک پرچم به نام rx_buffer_overflow
            یک عدد rx_counter
            مقداری rx_buffer
            دقت کنید هر دفعه یدونه rx_counter زیاد میشه تا به مقدار بافر برسه هردفعه میاد و یدونه کاراکتر تو بافر میریزه
            وقتی به انتهاش رسید بیت rx_buffer_overflow رو 1 میکنه
            اینجوری شما میتونید در طول برنامتون چک کنید که آیا این بیت 1 شده یا نه اگه 1 شده بود میفهمید که بافر پر هست و باید برید و خالیش کنید بدون هیچ درگیری ای.
            خب چجوری خالیش میکنید؟
            میاید و اولا پرچم رو 0 میکنید و بازم وقفه کار کنه و ثانیا مقدار rx_buffer رو یه جایی کپی میکنید و ازش استفاده میکنید
            همین

            head<=
            ...تشکر خدا...
            [img width=97 height=100]http://mahdi3d.persiangig.com/image/5280543_t.jpg[/img]

            دیدگاه


              #7
              پاسخ : چشمک زدن یک LED هنگام اجرای تابع gets

              نوشته اصلی توسط (مهدی رنجبر)m4hd1r
              سلام مهندس خیلی خیلی ممنونم بابت راهنمایی

              تقریبا کل کار رو همونطور که گفتید انجام دادم اما با خود کد کارت ی سری کاراکتر عجبی غریب هم تهش اضافه میشن که باعث میشه مقایسه ی کد با کارت ها بهم بخوره.

              به نظرتون برای چی هست؟
              به خاطر کریستال داخلی خود میکرو نیست؟

              اینم برنامه:
              [code=c]#include <mega8.h>
              #include <alcd.h>
              #include <stdio.h>
              #include <delay.h>
              #include <string.h>
              #include <stdlib.h>

              #ifndef RXB8
              #define RXB8 1
              #endif

              #ifndef TXB8
              #define TXB8 0
              #endif

              #ifndef UPE
              #define UPE 2
              #endif

              #ifndef DOR
              #define DOR 3
              #endif

              #ifndef FE
              #define FE 4
              #endif

              #ifndef UDRE
              #define UDRE 5
              #endif

              #ifndef RXC
              #define RXC 7
              #endif

              #define FRAMING_ERROR (1<<FE)
              #define PARITY_ERROR (1<<UPE)
              #define DATA_OVERRUN (1<<DOR)
              #define DATA_REGISTER_EMPTY (1<<UDRE)
              #define RX_COMPLETE (1<<RXC)

              // USART Receiver buffer
              #define RX_BUFFER_SIZE 12
              char rx_buffer[RX_BUFFER_SIZE];

              #if RX_BUFFER_SIZE <= 256
              unsigned char rx_wr_index,rx_rd_index,rx_counter;
              #else
              unsigned int rx_wr_index,rx_rd_index,rx_counter;
              #endif

              // This flag is set on USART Receiver buffer overflow
              bit rx_buffer_overflow;

              // USART Receiver interrupt service routine
              interrupt [USART_RXC] void usart_rx_isr(void)
              {
              char status,data;
              status=UCSRA;
              data=UDR;
              if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
              {
              rx_buffer[rx_wr_index++]=data;
              #if RX_BUFFER_SIZE == 256
              // special case for receiver buffer size=256
              if (++rx_counter == 0) rx_buffer_overflow=1;
              #else
              if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
              if (++rx_counter == RX_BUFFER_SIZE)
              {
              rx_counter=0;
              rx_buffer_overflow=1;
              }
              #endif
              }
              }

              #ifndef _DEBUG_TERMINAL_IO_
              // Get a character from the USART Receiver buffer
              #define _ALTERNATE_GETCHAR_
              #pragma used+
              char getchar(void)
              {
              char data;
              while (rx_counter==0);
              data=rx_buffer[rx_rd_index++];
              #if RX_BUFFER_SIZE != 256
              if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
              #endif
              #asm("cli&quot
              --rx_counter;
              #asm("sei&quot
              return data;
              }
              #pragma used-
              #endif

              // Standard Input/Output functions
              #include <stdio.h>

              // Declare your global variables here

              void main(void)
              {
              // Declare your local variables here

              // Input/Output Ports initialization
              // 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=0xff;

              // Port C initialization
              // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
              // State6=T State5=T State4=T State3=T State2=T State1=T State0=T
              PORTC=0x00;
              DDRC=0x00;

              // 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
              TCCR0=0x00;
              TCNT0=0x00;

              // Timer/Counter 1 initialization
              // Clock source: System Clock
              // Clock value: Timer1 Stopped
              // Mode: Normal top=0xFFFF
              // OC1A output: Discon.
              // OC1B output: Discon.
              // Noise Canceler: Off
              // Input Capture on Falling Edge
              // Timer1 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: Timer2 Stopped
              // Mode: Normal top=0xFF
              // OC2 output: Disconnected
              ASSR=0x00;
              TCCR2=0x00;
              TCNT2=0x00;
              OCR2=0x00;

              // External Interrupt(s) initialization
              // INT0: Off
              // INT1: Off
              MCUCR=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: Off
              // USART Mode: Asynchronous
              // USART Baud Rate: 9600
              UCSRA=0x00;
              UCSRB=0x90;
              UCSRC=0x86;
              UBRRH=0x00;
              UBRRL=0x33;

              // Analog Comparator initialization
              // Analog Comparator: Off
              // Analog Comparator Input Capture by Timer/Counter 1: Off
              ACSR=0x80;
              SFIOR=0x00;

              // ADC initialization
              // ADC disabled
              ADCSRA=0x00;

              // SPI initialization
              // SPI disabled
              SPCR=0x00;

              // TWI initialization
              // TWI disabled
              TWCR=0x00;

              // Alphanumeric LCD initialization
              // Connections are specified in the
              // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
              // RS - PORTC Bit 5
              // RD - PORTC Bit 4
              // EN - PORTC Bit 3
              // D4 - PORTC Bit 2
              // D5 - PORTC Bit 1
              // D6 - PORTC Bit 0
              // D7 - PORTB Bit 5
              // Characters/line: 16
              lcd_init(16);

              // Global enable interrupts
              #asm("sei&quot
              //char CARD1 [1][1]="0C0061E91B9F";
              //char CARD2 [2][1]="0C0060745149";
              //char CARD3 [3][1]="0C0043232D41";
              //char CARD4 [4][1]="0C00217D85D5";
              //char CARD5 [5][1]="0C0027474D21";
              //char CARD6 [6][1]="0C005AD4F97B";
              //char CARD7 [7][1]="0C006149E2C6";
              //char CARD8 [8][1]="FF0064E7215D";
              //char CARD9 [9][1]="0C00607AB3A5";
              while (1)
              {
              float result= -1;
              char strresult[12];
              char rfid[12][13]= //[تعداد کاراکتر های یک کارت][تعداد کارت]
              {
              "0C0061E91B9F", //rfid[0]
              "0C0060745149", //rfid[1]
              "0C0043232D41", //rfid[2]
              "0C00217D85D5", //rfid[3]
              "0C0027474D21", //rfid[4]
              "0C005AD4F97B", //rfid[5]
              "0C006149E2C6", //rfid[6]
              "FF0064E7215D", //rfid[7]
              "0C00607AB3A5", //rfid[8]
              };
              lcd_clear();
              lcd_gotoxy(0,0);
              lcd_puts(" Welcome"
              PORTB.2=1;
              delay_ms(200);
              PORTB.2=0;
              delay_ms(200);

              if(rx_buffer_overflow==1){
              PORTB.1=1;
              rx_buffer_overflow=0;
              lcd_clear();
              delay_ms(200);
              lcd_puts(rx_buffer);
              lcd_gotoxy(0,1);
              delay_ms(1000);

              result = strcmp(rx_buffer,rfid[0]);
              if(result==0){
              lcd_puts("Welcome Ahmad"
              result=-1;
              }

              result = strcmp(rx_buffer,rfid[1]);
              if(result==0){
              itoa(result,strresult);
              lcd_puts("Welcome Mohammad"
              result=-1;
              }

              result = strcmp(rx_buffer,rfid[2]);
              if(result==0){
              itoa(result,strresult);
              lcd_puts("Welcome Mahdi"
              result=-1;
              }

              result = strcmp(rx_buffer,rfid[3]);
              if(result==0){
              itoa(result,strresult);
              lcd_puts("Welcome Hassan"
              result=-1;
              }

              result = strcmp(rx_buffer,rfid[4]);
              if(result==0){
              itoa(result,strresult);
              lcd_puts("Welcome hossein"
              result=-1;
              }

              result = strcmp(rx_buffer,rfid[5]);
              if(result==0){
              itoa(result,strresult);
              lcd_puts("Welcome Sajad"
              result=-1;
              }

              result = strcmp(rx_buffer,rfid[6]);
              if(result==0){
              itoa(result,strresult);
              lcd_puts("Welcome Mostafa"
              result=-1;
              }

              result = strcmp(rx_buffer,rfid[7]);
              if(result==0){
              itoa(result,strresult);
              lcd_puts("Welcome Hesam"
              result=-1;
              }

              result = strcmp(rx_buffer,rfid[8]);
              if(result==0){
              itoa(result,strresult);
              lcd_puts("Welcome Javad"
              result=-1;
              }

              result = strcmp(rx_buffer,rfid[9]);
              if(result==0){
              itoa(result,strresult);
              lcd_puts("Welcome Reza"
              result=-1;

              }
              }
              PORTB.1=0;
              }
              }


              [/code]
              "زمان خط است نه دايره" چه ايده بدي بوده گرد ساختن ساعت. احساس ميکني هميشه فرصت تکرار است.
              ساعت دروغ ميگويد. دروغ. زمان بر گرد يک دايره نمي چرخد! زمان بر روي خطي مستقيم ميدود. و هيچگاه، هيچگاه، هيچگاه باز نميگردد.
              ساعت خوب، ساعت شني است! هر لحظه به تو يادآوري ميکند که دانه اي که افتاد ديگر باز نميگردد.
              پس بهتره يکم به ثانيه هايي که داريم فکر کنيم تا به راحتي از دستشون نديم....

              دیدگاه


                #8
                پاسخ : چشمک زدن یک LED هنگام اجرای تابع gets

                نوشته اصلی توسط mo2_star
                سلام مهندس خیلی خیلی ممنونم بابت راهنمایی

                تقریبا کل کار رو همونطور که گفتید انجام دادم اما با خود کد کارت ی سری کاراکتر عجبی غریب هم تهش اضافه میشن که باعث میشه مقایسه ی کد با کارت ها بهم بخوره.

                به نظرتون برای چی هست؟
                به خاطر کریستال داخلی خود میکرو نیست؟

                اینم برنامه:
                [code=c]#include <mega8.h>
                #include <alcd.h>
                #include <stdio.h>
                #include <delay.h>
                #include <string.h>
                #include <stdlib.h>

                #ifndef RXB8
                #define RXB8 1
                #endif

                #ifndef TXB8
                #define TXB8 0
                #endif

                #ifndef UPE
                #define UPE 2
                #endif

                #ifndef DOR
                #define DOR 3
                #endif

                #ifndef FE
                #define FE 4
                #endif

                #ifndef UDRE
                #define UDRE 5
                #endif

                #ifndef RXC
                #define RXC 7
                #endif

                #define FRAMING_ERROR (1<<FE)
                #define PARITY_ERROR (1<<UPE)
                #define DATA_OVERRUN (1<<DOR)
                #define DATA_REGISTER_EMPTY (1<<UDRE)
                #define RX_COMPLETE (1<<RXC)

                // USART Receiver buffer
                #define RX_BUFFER_SIZE 12
                char rx_buffer[RX_BUFFER_SIZE];

                #if RX_BUFFER_SIZE <= 256
                unsigned char rx_wr_index,rx_rd_index,rx_counter;
                #else
                unsigned int rx_wr_index,rx_rd_index,rx_counter;
                #endif

                // This flag is set on USART Receiver buffer overflow
                bit rx_buffer_overflow;

                // USART Receiver interrupt service routine
                interrupt [USART_RXC] void usart_rx_isr(void)
                {
                char status,data;
                status=UCSRA;
                data=UDR;
                if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
                {
                rx_buffer[rx_wr_index++]=data;
                #if RX_BUFFER_SIZE == 256
                // special case for receiver buffer size=256
                if (++rx_counter == 0) rx_buffer_overflow=1;
                #else
                if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
                if (++rx_counter == RX_BUFFER_SIZE)
                {
                rx_counter=0;
                rx_buffer_overflow=1;
                }
                #endif
                }
                }

                #ifndef _DEBUG_TERMINAL_IO_
                // Get a character from the USART Receiver buffer
                #define _ALTERNATE_GETCHAR_
                #pragma used+
                char getchar(void)
                {
                char data;
                while (rx_counter==0);
                data=rx_buffer[rx_rd_index++];
                #if RX_BUFFER_SIZE != 256
                if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
                #endif
                #asm("cli&quot
                --rx_counter;
                #asm("sei&quot
                return data;
                }
                #pragma used-
                #endif

                // Standard Input/Output functions
                #include <stdio.h>

                // Declare your global variables here

                void main(void)
                {
                // Declare your local variables here

                // Input/Output Ports initialization
                // 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=0xff;

                // Port C initialization
                // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
                // State6=T State5=T State4=T State3=T State2=T State1=T State0=T
                PORTC=0x00;
                DDRC=0x00;

                // 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
                TCCR0=0x00;
                TCNT0=0x00;

                // Timer/Counter 1 initialization
                // Clock source: System Clock
                // Clock value: Timer1 Stopped
                // Mode: Normal top=0xFFFF
                // OC1A output: Discon.
                // OC1B output: Discon.
                // Noise Canceler: Off
                // Input Capture on Falling Edge
                // Timer1 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: Timer2 Stopped
                // Mode: Normal top=0xFF
                // OC2 output: Disconnected
                ASSR=0x00;
                TCCR2=0x00;
                TCNT2=0x00;
                OCR2=0x00;

                // External Interrupt(s) initialization
                // INT0: Off
                // INT1: Off
                MCUCR=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: Off
                // USART Mode: Asynchronous
                // USART Baud Rate: 9600
                UCSRA=0x00;
                UCSRB=0x90;
                UCSRC=0x86;
                UBRRH=0x00;
                UBRRL=0x33;

                // Analog Comparator initialization
                // Analog Comparator: Off
                // Analog Comparator Input Capture by Timer/Counter 1: Off
                ACSR=0x80;
                SFIOR=0x00;

                // ADC initialization
                // ADC disabled
                ADCSRA=0x00;

                // SPI initialization
                // SPI disabled
                SPCR=0x00;

                // TWI initialization
                // TWI disabled
                TWCR=0x00;

                // Alphanumeric LCD initialization
                // Connections are specified in the
                // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
                // RS - PORTC Bit 5
                // RD - PORTC Bit 4
                // EN - PORTC Bit 3
                // D4 - PORTC Bit 2
                // D5 - PORTC Bit 1
                // D6 - PORTC Bit 0
                // D7 - PORTB Bit 5
                // Characters/line: 16
                lcd_init(16);

                // Global enable interrupts
                #asm("sei&quot
                //char CARD1 [1][1]="0C0061E91B9F";
                //char CARD2 [2][1]="0C0060745149";
                //char CARD3 [3][1]="0C0043232D41";
                //char CARD4 [4][1]="0C00217D85D5";
                //char CARD5 [5][1]="0C0027474D21";
                //char CARD6 [6][1]="0C005AD4F97B";
                //char CARD7 [7][1]="0C006149E2C6";
                //char CARD8 [8][1]="FF0064E7215D";
                //char CARD9 [9][1]="0C00607AB3A5";
                while (1)
                {
                float result= -1;
                char strresult[12];
                char rfid[12][13]= //[تعداد کاراکتر های یک کارت][تعداد کارت]
                {
                "0C0061E91B9F", //rfid[0]
                "0C0060745149", //rfid[1]
                "0C0043232D41", //rfid[2]
                "0C00217D85D5", //rfid[3]
                "0C0027474D21", //rfid[4]
                "0C005AD4F97B", //rfid[5]
                "0C006149E2C6", //rfid[6]
                "FF0064E7215D", //rfid[7]
                "0C00607AB3A5", //rfid[8]
                };
                lcd_clear();
                lcd_gotoxy(0,0);
                lcd_puts(" Welcome"
                PORTB.2=1;
                delay_ms(200);
                PORTB.2=0;
                delay_ms(200);

                if(rx_buffer_overflow==1){
                PORTB.1=1;
                rx_buffer_overflow=0;
                lcd_clear();
                delay_ms(200);
                lcd_puts(rx_buffer);
                lcd_gotoxy(0,1);
                delay_ms(1000);

                result = strcmp(rx_buffer,rfid[0]);
                if(result==0){
                lcd_puts("Welcome Ahmad"
                result=-1;
                }

                result = strcmp(rx_buffer,rfid[1]);
                if(result==0){
                itoa(result,strresult);
                lcd_puts("Welcome Mohammad"
                result=-1;
                }

                result = strcmp(rx_buffer,rfid[2]);
                if(result==0){
                itoa(result,strresult);
                lcd_puts("Welcome Mahdi"
                result=-1;
                }

                result = strcmp(rx_buffer,rfid[3]);
                if(result==0){
                itoa(result,strresult);
                lcd_puts("Welcome Hassan"
                result=-1;
                }

                result = strcmp(rx_buffer,rfid[4]);
                if(result==0){
                itoa(result,strresult);
                lcd_puts("Welcome hossein"
                result=-1;
                }

                result = strcmp(rx_buffer,rfid[5]);
                if(result==0){
                itoa(result,strresult);
                lcd_puts("Welcome Sajad"
                result=-1;
                }

                result = strcmp(rx_buffer,rfid[6]);
                if(result==0){
                itoa(result,strresult);
                lcd_puts("Welcome Mostafa"
                result=-1;
                }

                result = strcmp(rx_buffer,rfid[7]);
                if(result==0){
                itoa(result,strresult);
                lcd_puts("Welcome Hesam"
                result=-1;
                }

                result = strcmp(rx_buffer,rfid[8]);
                if(result==0){
                itoa(result,strresult);
                lcd_puts("Welcome Javad"
                result=-1;
                }

                result = strcmp(rx_buffer,rfid[9]);
                if(result==0){
                itoa(result,strresult);
                lcd_puts("Welcome Reza"
                result=-1;

                }
                }
                PORTB.1=0;
                }
                }


                [/code]

                خیلی خواهش
                اگه دقیقا خود کد کارت هست و یه چیزایی پشتشه بخاطر اینه که این بافر شما تا تهش پر میشه
                همون طور که میدونیم در زبون C وقتی بخوایم یه متنی رو بنویسیم تهش \0 میزاریم
                شما کامل بافرتون رو پر میکنید و برای \0 جایی نمیزارید
                راهش اینه که بافرتون رو یه واحد بزرگ تر انتخاب کنید و خودتون یک \0 در خانه آخرش بنویسید

                head<=
                ...تشکر خدا...
                [img width=97 height=100]http://mahdi3d.persiangig.com/image/5280543_t.jpg[/img]

                دیدگاه


                  #9
                  پاسخ : چشمک زدن یک LED هنگام اجرای تابع gets

                  سلام :nerd:

                  من برای /0 جا گذاشتم. دیتام 12تا کاراکتر هست. توی متغیر از صفر شروع میشه تا 11
                  من ظرفیت 12 رو در نظر گرفتم. :smile:

                  هر کاری میکنم نمیشه. :angry:
                  بافر رو اینجوری نشون میده. :cry2:



                  اون end رو خودم گذاشتم که انتهای حروف نامفهوم مشخص بشه
                  تنها راهی که الان به ذهنم میرسه اینه که از ساختمان struct و union استفاده کنم.
                  الان میخوام برم امتحان کنم ولی فکر نمیکنم بشه.
                  اینم برنامم:
                  [code=c]/************************************************** ***
                  Chip type : ATmega8
                  Program type : Application
                  AVR Core Clock frequency: 8.000000 MHz
                  Memory model : Small
                  External RAM size : 0
                  Data Stack size : 256
                  ************************************************** ***/
                  #include <mega8.h>
                  #include <alcd.h>
                  #include <stdio.h>
                  #include <delay.h>
                  #include <string.h>
                  #include <stdlib.h>
                  #ifndef RXB8
                  #define RXB8 1
                  #endif
                  #ifndef TXB8
                  #define TXB8 0
                  #endif
                  #ifndef UPE
                  #define UPE 2
                  #endif
                  #ifndef DOR
                  #define DOR 3
                  #endif
                  #ifndef FE
                  #define FE 4
                  #endif
                  #ifndef UDRE
                  #define UDRE 5
                  #endif
                  #ifndef RXC
                  #define RXC 7
                  #endif
                  #define FRAMING_ERROR (1<<FE)
                  #define PARITY_ERROR (1<<UPE)
                  #define DATA_OVERRUN (1<<DOR)
                  #define DATA_REGISTER_EMPTY (1<<UDRE)
                  #define RX_COMPLETE (1<<RXC)
                  // USART Receiver buffer
                  #define RX_BUFFER_SIZE 12
                  char rx_buffer[RX_BUFFER_SIZE];
                  #if RX_BUFFER_SIZE <= 256
                  unsigned char rx_wr_index,rx_rd_index,rx_counter;
                  #else
                  unsigned int rx_wr_index,rx_rd_index,rx_counter;
                  #endif
                  bit rx_buffer_overflow; // This flag is set on USART Receiver buffer overflow
                  interrupt [USART_RXC] void usart_rx_isr(void) // USART Receiver interrupt service routine
                  {
                  char status,data;
                  status=UCSRA;
                  data=UDR;
                  if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
                  {
                  rx_buffer[rx_wr_index++]=data;
                  #if RX_BUFFER_SIZE == 256
                  // special case for receiver buffer size=256
                  if (++rx_counter == 0) rx_buffer_overflow=1;
                  #else
                  if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
                  if (++rx_counter == RX_BUFFER_SIZE)
                  {
                  rx_counter=0;
                  rx_buffer_overflow=1;
                  }
                  #endif
                  }
                  }

                  #ifndef _DEBUG_TERMINAL_IO_
                  // Get a character from the USART Receiver buffer
                  #define _ALTERNATE_GETCHAR_
                  #pragma used+
                  char getchar(void)
                  {
                  char data;
                  while (rx_counter==0);
                  data=rx_buffer[rx_rd_index++];
                  #if RX_BUFFER_SIZE != 256
                  if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
                  #endif
                  #asm("cli&quot
                  --rx_counter;
                  #asm("sei&quot
                  return data;
                  }
                  #pragma used-
                  #endif
                  void main(void)
                  {
                  PORTB=0x00;
                  DDRB=0xff;
                  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; // Timer(s)/Counter(s) Interrupt(s) initialization
                  UCSRA=0x00; // USART Baud Rate: 9600 // Communication Parameters: 8 Data, 1 Stop, No Parity
                  UCSRB=0x90;
                  UCSRC=0x86;
                  UBRRH=0x00;
                  UBRRL=0x33;
                  ACSR=0x80;
                  SFIOR=0x00;
                  ADCSRA=0x00;
                  SPCR=0x00;
                  TWCR=0x00;
                  // RS - PORTC Bit 5
                  // RD - PORTC Bit 4
                  // EN - PORTC Bit 3
                  // D4 - PORTC Bit 2
                  // D5 - PORTC Bit 1
                  // D6 - PORTC Bit 0
                  // D7 - PORTB Bit 5
                  // Characters/line: 16
                  lcd_init(16);
                  #asm("sei&quot
                  while (1)
                  {
                  char code[12];
                  float result= -1;
                  char strresult[12];
                  char rfid[12][13]= //[تعداد کاراکتر های یک کارت][تعداد کارت]
                  {
                  "0C0061E91B9F", //rfid[0]
                  "0C0060745149", //rfid[1]
                  "0C0043232D41", //rfid[2]
                  "0C00217D85D5", //rfid[3]
                  "0C0027474D21", //rfid[4]
                  "0C005AD4F97B", //rfid[5]
                  "0C006149E2C6", //rfid[6]
                  "FF0064E7215D", //rfid[7]
                  "0C00607AB3A5", //rfid[8]
                  };
                  lcd_clear();
                  lcd_gotoxy(0,0);
                  lcd_puts(" Welcome"

                  while (1)
                  {
                  PORTB.2=1;
                  delay_ms(200);
                  PORTB.2=0;
                  delay_ms(200);

                  if(rx_buffer_overflow==1)
                  {
                  PORTB.1=1;
                  lcd_clear();
                  delay_ms(200);
                  strcpy(code,rx_buffer) ;
                  lcd_gotoxy(0,0);
                  delay_ms(200);
                  lcd_puts(code);
                  lcd_puts("end"

                  result = strcmp(rx_buffer,rfid[0]);
                  if(result==0){
                  lcd_puts("Welcome Ahmad"
                  result=-1;
                  }

                  result = strcmp(rx_buffer,rfid[1]);
                  if(result==0){
                  itoa(result,strresult);
                  lcd_puts("Welcome Mohammad"
                  result=-1;
                  }

                  result = strcmp(rx_buffer,rfid[2]);
                  if(result==0){
                  itoa(result,strresult);
                  lcd_puts("Welcome Mahdi"
                  result=-1;
                  }

                  result = strcmp(rx_buffer,rfid[3]);
                  if(result==0){
                  itoa(result,strresult);
                  lcd_puts("Welcome Hassan"
                  result=-1;
                  }

                  result = strcmp(rx_buffer,rfid[4]);
                  if(result==0){
                  itoa(result,strresult);
                  lcd_puts("Welcome hossein"
                  result=-1;
                  }

                  result = strcmp(rx_buffer,rfid[5]);
                  if(result==0){
                  itoa(result,strresult);
                  lcd_puts("Welcome Sajad"
                  result=-1;
                  }

                  result = strcmp(rx_buffer,rfid[6]);
                  if(result==0){
                  itoa(result,strresult);
                  lcd_puts("Welcome Mostafa"
                  result=-1;
                  }

                  result = strcmp(rx_buffer,rfid[7]);
                  if(result==0){
                  itoa(result,strresult);
                  lcd_puts("Welcome Hesam"
                  result=-1;
                  }

                  result = strcmp(rx_buffer,rfid[8]);
                  if(result==0){
                  itoa(result,strresult);
                  lcd_puts("Welcome Javad"
                  result=-1;
                  }

                  result = strcmp(rx_buffer,rfid[9]);
                  if(result==0){
                  itoa(result,strresult);
                  lcd_puts("Welcome Reza"
                  result=-1;

                  }
                  }
                  rx_buffer_overflow=0;
                  PORTB.1=0;
                  }
                  }
                  }


                  [/code]
                  "زمان خط است نه دايره" چه ايده بدي بوده گرد ساختن ساعت. احساس ميکني هميشه فرصت تکرار است.
                  ساعت دروغ ميگويد. دروغ. زمان بر گرد يک دايره نمي چرخد! زمان بر روي خطي مستقيم ميدود. و هيچگاه، هيچگاه، هيچگاه باز نميگردد.
                  ساعت خوب، ساعت شني است! هر لحظه به تو يادآوري ميکند که دانه اي که افتاد ديگر باز نميگردد.
                  پس بهتره يکم به ثانيه هايي که داريم فکر کنيم تا به راحتي از دستشون نديم....

                  دیدگاه


                    #10
                    پاسخ : چشمک زدن یک LED هنگام اجرای تابع gets

                    نوشته اصلی توسط mo2_star
                    سلام :nerd:

                    من برای /0 جا گذاشتم. دیتام 12تا کاراکتر هست. توی متغیر از صفر شروع میشه تا 11
                    من ظرفیت 12 رو در نظر گرفتم. :smile:

                    هر کاری میکنم نمیشه. :angry:
                    بافر رو اینجوری نشون میده. :cry2:



                    اون end رو خودم گذاشتم که انتهای حروف نامفهوم مشخص بشه
                    تنها راهی که الان به ذهنم میرسه اینه که از ساختمان struct و union استفاده کنم.
                    الان میخوام برم امتحان کنم ولی فکر نمیکنم بشه.
                    اینم برنامم:
                    اگر اشتباه نکنم این باید جواب بده
                    خط 43 و 44 رو ببینید
                    بافر رو یدونه بزرگترش کردم و تهش 0 گذاشتم


                    [code=c]/************************************************** ***
                    Chip type : ATmega8
                    Program type : Application
                    AVR Core Clock frequency: 8.000000 MHz
                    Memory model : Small
                    External RAM size : 0
                    Data Stack size : 256
                    ************************************************** ***/
                    #include <mega8.h>
                    #include <alcd.h>
                    #include <stdio.h>
                    #include <delay.h>
                    #include <string.h>
                    #include <stdlib.h>
                    #ifndef RXB8
                    #define RXB8 1
                    #endif
                    #ifndef TXB8
                    #define TXB8 0
                    #endif
                    #ifndef UPE
                    #define UPE 2
                    #endif
                    #ifndef DOR
                    #define DOR 3
                    #endif
                    #ifndef FE
                    #define FE 4
                    #endif
                    #ifndef UDRE
                    #define UDRE 5
                    #endif
                    #ifndef RXC
                    #define RXC 7
                    #endif
                    #define FRAMING_ERROR (1<<FE)
                    #define PARITY_ERROR (1<<UPE)
                    #define DATA_OVERRUN (1<<DOR)
                    #define DATA_REGISTER_EMPTY (1<<UDRE)
                    #define RX_COMPLETE (1<<RXC)
                    // USART Receiver buffer
                    #define RX_BUFFER_SIZE 12
                    char rx_buffer[RX_BUFFER_SIZE+1]; //*
                    rx_buffer[RX_BUFFER_SIZE+1] = '\0';
                    #if RX_BUFFER_SIZE <= 256
                    unsigned char rx_wr_index,rx_rd_index,rx_counter;
                    #else
                    unsigned int rx_wr_index,rx_rd_index,rx_counter;
                    #endif
                    bit rx_buffer_overflow; // This flag is set on USART Receiver buffer overflow
                    interrupt [USART_RXC] void usart_rx_isr(void) // USART Receiver interrupt service routine
                    {
                    char status,data;
                    status=UCSRA;
                    data=UDR;
                    if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
                    {
                    rx_buffer[rx_wr_index++]=data;
                    #if RX_BUFFER_SIZE == 256
                    // special case for receiver buffer size=256
                    if (++rx_counter == 0) rx_buffer_overflow=1;
                    #else
                    if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
                    if (++rx_counter == RX_BUFFER_SIZE)
                    {
                    rx_counter=0;
                    rx_buffer_overflow=1;
                    }
                    #endif
                    }
                    }

                    #ifndef _DEBUG_TERMINAL_IO_
                    // Get a character from the USART Receiver buffer
                    #define _ALTERNATE_GETCHAR_
                    #pragma used+
                    char getchar(void)
                    {
                    char data;
                    while (rx_counter==0);
                    data=rx_buffer[rx_rd_index++];
                    #if RX_BUFFER_SIZE != 256
                    if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
                    #endif
                    #asm("cli&quot
                    --rx_counter;
                    #asm("sei&quot
                    return data;
                    }
                    #pragma used-
                    #endif
                    void main(void)
                    {
                    PORTB=0x00;
                    DDRB=0xff;
                    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; // Timer(s)/Counter(s) Interrupt(s) initialization
                    UCSRA=0x00; // USART Baud Rate: 9600 // Communication Parameters: 8 Data, 1 Stop, No Parity
                    UCSRB=0x90;
                    UCSRC=0x86;
                    UBRRH=0x00;
                    UBRRL=0x33;
                    ACSR=0x80;
                    SFIOR=0x00;
                    ADCSRA=0x00;
                    SPCR=0x00;
                    TWCR=0x00;
                    // RS - PORTC Bit 5
                    // RD - PORTC Bit 4
                    // EN - PORTC Bit 3
                    // D4 - PORTC Bit 2
                    // D5 - PORTC Bit 1
                    // D6 - PORTC Bit 0
                    // D7 - PORTB Bit 5
                    // Characters/line: 16
                    lcd_init(16);
                    #asm("sei&quot
                    while (1)
                    {
                    char code[12];
                    float result= -1;
                    char strresult[12];
                    char rfid[12][13]= //[تعداد کاراکتر های یک کارت][تعداد کارت]
                    {
                    "0C0061E91B9F", //rfid[0]
                    "0C0060745149", //rfid[1]
                    "0C0043232D41", //rfid[2]
                    "0C00217D85D5", //rfid[3]
                    "0C0027474D21", //rfid[4]
                    "0C005AD4F97B", //rfid[5]
                    "0C006149E2C6", //rfid[6]
                    "FF0064E7215D", //rfid[7]
                    "0C00607AB3A5", //rfid[8]
                    };
                    lcd_clear();
                    lcd_gotoxy(0,0);
                    lcd_puts(" Welcome"

                    while (1)
                    {
                    PORTB.2=1;
                    delay_ms(200);
                    PORTB.2=0;
                    delay_ms(200);

                    if(rx_buffer_overflow==1)
                    {
                    PORTB.1=1;
                    lcd_clear();
                    delay_ms(200);
                    strcpy(code,rx_buffer) ;
                    lcd_gotoxy(0,0);
                    delay_ms(200);
                    lcd_puts(code);
                    lcd_puts("end"

                    result = strcmp(rx_buffer,rfid[0]);
                    if(result==0){
                    lcd_puts("Welcome Ahmad"
                    result=-1;
                    }

                    result = strcmp(rx_buffer,rfid[1]);
                    if(result==0){
                    itoa(result,strresult);
                    lcd_puts("Welcome Mohammad"
                    result=-1;
                    }

                    result = strcmp(rx_buffer,rfid[2]);
                    if(result==0){
                    itoa(result,strresult);
                    lcd_puts("Welcome Mahdi"
                    result=-1;
                    }

                    result = strcmp(rx_buffer,rfid[3]);
                    if(result==0){
                    itoa(result,strresult);
                    lcd_puts("Welcome Hassan"
                    result=-1;
                    }

                    result = strcmp(rx_buffer,rfid[4]);
                    if(result==0){
                    itoa(result,strresult);
                    lcd_puts("Welcome hossein"
                    result=-1;
                    }

                    result = strcmp(rx_buffer,rfid[5]);
                    if(result==0){
                    itoa(result,strresult);
                    lcd_puts("Welcome Sajad"
                    result=-1;
                    }

                    result = strcmp(rx_buffer,rfid[6]);
                    if(result==0){
                    itoa(result,strresult);
                    lcd_puts("Welcome Mostafa"
                    result=-1;
                    }

                    result = strcmp(rx_buffer,rfid[7]);
                    if(result==0){
                    itoa(result,strresult);
                    lcd_puts("Welcome Hesam"
                    result=-1;
                    }

                    result = strcmp(rx_buffer,rfid[8]);
                    if(result==0){
                    itoa(result,strresult);
                    lcd_puts("Welcome Javad"
                    result=-1;
                    }

                    result = strcmp(rx_buffer,rfid[9]);
                    if(result==0){
                    itoa(result,strresult);
                    lcd_puts("Welcome Reza"
                    result=-1;

                    }
                    }
                    rx_buffer_overflow=0;
                    PORTB.1=0;
                    }
                    }
                    }


                    [/code]



                    head<=
                    ...تشکر خدا...
                    [img width=97 height=100]http://mahdi3d.persiangig.com/image/5280543_t.jpg[/img]

                    دیدگاه


                      #11
                      پاسخ : چشمک زدن یک LED هنگام اجرای تابع gets



                      :angry:

                      کم کم دارم فکر میکنم ساختن یه چشمک زن با 555 راحت تر بوده ها
                      "زمان خط است نه دايره" چه ايده بدي بوده گرد ساختن ساعت. احساس ميکني هميشه فرصت تکرار است.
                      ساعت دروغ ميگويد. دروغ. زمان بر گرد يک دايره نمي چرخد! زمان بر روي خطي مستقيم ميدود. و هيچگاه، هيچگاه، هيچگاه باز نميگردد.
                      ساعت خوب، ساعت شني است! هر لحظه به تو يادآوري ميکند که دانه اي که افتاد ديگر باز نميگردد.
                      پس بهتره يکم به ثانيه هايي که داريم فکر کنيم تا به راحتي از دستشون نديم....

                      دیدگاه


                        #12
                        پاسخ : چشمک زدن یک LED هنگام اجرای تابع gets

                        نوشته اصلی توسط mo2_star


                        :angry:
                        بنده عذر میخوام!! این چی بود نوشتم
                        یه جایی تو اولای مینتون بنویسید
                        rx_buffer[12] = 0;

                        head<=
                        ...تشکر خدا...
                        [img width=97 height=100]http://mahdi3d.persiangig.com/image/5280543_t.jpg[/img]

                        دیدگاه


                          #13
                          پاسخ : چشمک زدن یک LED هنگام اجرای تابع gets

                          نوشته اصلی توسط (مهدی رنجبر)m4hd1r

                          یه جایی تو اولای مینتون بنویسید
                          rx_buffer[12] = 0;
                          [glow=red,2,300]درســـــــــــــــــــــــــــــــــــــــــت شد [/glow] :smile:

                          خیلی خیلی خیلی[glow=red,2,300] ممنون [/glow] :nerd:

                          این چی بود نوشتم
                          از این که بدتر نیست:


                          مثلا پول پ هست. :biggrin:
                          "زمان خط است نه دايره" چه ايده بدي بوده گرد ساختن ساعت. احساس ميکني هميشه فرصت تکرار است.
                          ساعت دروغ ميگويد. دروغ. زمان بر گرد يک دايره نمي چرخد! زمان بر روي خطي مستقيم ميدود. و هيچگاه، هيچگاه، هيچگاه باز نميگردد.
                          ساعت خوب، ساعت شني است! هر لحظه به تو يادآوري ميکند که دانه اي که افتاد ديگر باز نميگردد.
                          پس بهتره يکم به ثانيه هايي که داريم فکر کنيم تا به راحتي از دستشون نديم....

                          دیدگاه

                          لطفا صبر کنید...
                          X