اطلاعیه

Collapse
No announcement yet.

اشکال در برنامه نویسی

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

    #31
    پاسخ : اشکال در برنامه نویسی

    آقا سامان دمت گرم . لطف کردی
    درست شد

    لطفا میفرمایید چه تغییری در برنامه دادید که سرعت زیاد شد ؟

    دیدگاه


      #32
      پاسخ : اشکال در برنامه نویسی

      نوشته اصلی توسط kamran1991
      آقا سامان دمت گرم . لطف کردی
      درست شد

      لطفا میفرمایید چه تغییری در برنامه دادید که سرعت زیاد شد ؟
      فایل رو براتون گذاشتم که ...
      کل برنامه رو تغییر دادم ...

      اضافه شده در تاریخ :
      یه تایمر تعریف کردم ... اون رو گذاشتم روی یک ثانیه ...
      همین ...
      دستورات delay_ms زیاد دقیق در نمی آید ...
      موفق باشید
      [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
      معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
      معرفی نرم افزار Codewizard PWM
      با من بیشتر آشنا شوید

      دیدگاه


        #33
        پاسخ : اشکال در برنامه نویسی

        ممنون

        اگر بخواهیم آلارم اضافه کنیم برنامه چه تغییری میکند ؟ پیچیده میشود ؟

        دیدگاه


          #34
          پاسخ : اشکال در برنامه نویسی

          نوشته اصلی توسط kamran1991
          ممنون

          اگر بخواهیم آلارم اضافه کنیم برنامه چه تغییری میکند ؟ پیچیده میشود ؟
          شما توی اون وقفه تایمر بیا یه شرطی بگذارید مثلا اینجوری ...
          [code=c]/************************************************** *****
          This program was created by the
          CodeWizardAVR V3.12 Advanced
          Automatic Program Generator
          © Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.
          http://www.hpinfotech.com

          Project :
          Version :
          Date : 09/12/2014
          Author :
          Company :
          Comments:


          Chip type : ATmega32A
          Program type : Application
          AVR Core Clock frequency: 1.000000 MHz
          Memory model : Small
          External RAM size : 0
          Data Stack size : 512
          ************************************************** *****/
          #include <mega32a.h>
          #include <delay.h>
          #include <stdio.h>
          #include <alcd.h>
          unsigned char h,m,s,h1,m1;
          char str[16];

          // Timer1 output compare A interrupt service routine
          interrupt [TIM1_COMPA] void timer1_compa_isr(void)
          {
          if(++s == 60)
          {
          s=0;
          if(++m == 60)
          {
          m=0;
          if(++h == 24)
          h=0;
          }
          }
          lcd_clear();
          lcd_putsf("Time = "
          sprintf (str,"%2d : %2d : %2d",h,m,s);
          lcd_gotoxy(1,1);
          lcd_puts(str);
          if(h1 == h && m1 == m)
          {
          //on ALARM
          }
          }
          void Display_LCD_Start(void)
          {
          lcd_clear();
          lcd_putsf("Hello"
          lcd_gotoxy(0,1);
          lcd_putsf("Welcome"
          delay_ms(3000);
          lcd_clear();
          delay_ms(200);
          }
          void Refresh(void)
          {
          lcd_clear();
          lcd_putsf("Time = "
          sprintf (str,"%2d : %2d : %2d",h,m,s);
          lcd_gotoxy(1,1);
          lcd_puts(str);
          }
          void main()
          {

          DDRA=0x00;
          PORTA = 0xff;
          /////////////////////////////////////////////////////// Set time Alarm
          h1 = 12;
          m1 = 00;
          ///////////////////////////////////////////////////////
          // Timer/Counter 1 initialization
          // Clock source: System Clock
          // Clock value: 15.625 kHz
          // Mode: CTC top=OCR1A
          // OC1A output: Disconnected
          // OC1B output: Disconnected
          // Noise Canceler: Off
          // Input Capture on Falling Edge
          // Timer Period: 1 s
          // Timer1 Overflow Interrupt: Off
          // Input Capture Interrupt: Off
          // Compare A Match Interrupt: On
          // Compare B Match Interrupt: Off
          TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
          TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (1<<WGM12) | (0<<CS12) | (1<<CS11) | (1<<CS10);
          OCR1AH=0x3D;
          OCR1AL=0x08;
          // Timer(s)/Counter(s) Interrupt(s) initialization
          TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (1<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);
          // Alphanumeric LCD initialization
          // Connections are specified in the
          // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
          // RS - PORTB Bit 0
          // RD - PORTB Bit 1
          // EN - PORTB Bit 2
          // D4 - PORTB Bit 4
          // D5 - PORTB Bit 5
          // D6 - PORTB Bit 6
          // D7 - PORTB Bit 7
          // Characters/line: 16
          lcd_init(16);
          Display_LCD_Start();
          // Global enable interrupts
          #asm("sei&quot
          while(1)
          {
          if(PINA.0 == 0 && m > 0)
          {
          m--;
          Refresh();
          while(PINA.0 == 0);
          }
          if(PINA.1 == 0 && m <59)
          {
          m++;
          Refresh();
          while(PINA.1 == 0);
          }
          if(PINA.2 == 0 && h > 0)
          {
          h--;
          Refresh();
          while(PINA.2 == 0);
          }
          if(PINA.3 == 0 && h <23)
          {
          h++;
          Refresh();
          while(PINA.3 == 0);
          }
          }
          }

          [/code]
          و توی شروع برنامه مقدار را برای ست کردن آلارم تعیین میکنید ... الان من تعیین کردم سر ساعت 12 آلارم بده ...
          البته باید داخل شرط آلارم دستورات لازم برای روشن کردن آلارم گذاشته شود ...

          موفق باشید
          [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
          معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
          معرفی نرم افزار Codewizard PWM
          با من بیشتر آشنا شوید

          دیدگاه


            #35
            پاسخ : اشکال در برنامه نویسی

            تشکر مجدد

            با سرچ توی نت نتونستم آموزش انداختن مدل توی پرتیوس را پیدا کنم

            برای مثال چطور میتونم متن فوق را در پرتیوس پیاده سازی کنم؟

            دیدگاه


              #36
              پاسخ : اشکال در برنامه نویسی

              نوشته اصلی توسط kamran1991
              تشکر مجدد

              با سرچ توی نت نتونستم آموزش انداختن مدل توی پرتیوس را پیدا کنم

              برای مثال چطور میتونم متن فوق را در پرتیوس پیاده سازی کنم؟
              چی ؟؟؟؟ :eek:
              مگه تا حالا با پروتئوس کار نکردید ؟؟
              این برنامه رو کپی کنید توی کدویژن و اون رو کامپایل کنید
              و بعد توی پروتئوس روی میکرو دابل کلیک کرده و آدرس فایل cof. و یا hex. را بدهید ...
              روی دکمه play کلیک کنید و برنامه رو ببینید ...
              همین ...

              موفق باشید
              [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
              معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
              معرفی نرم افزار Codewizard PWM
              با من بیشتر آشنا شوید

              دیدگاه


                #37
                پاسخ : اشکال در برنامه نویسی

                درود مجدد آقا سامان

                والا تا حالا کار نکرده بودم ولی بسیار مایلم که شروع کنم و آشنا بشم .

                تو این چند روزه حسابی اذیت تون کردم باید ببخشید . یه درخواست و خواهش داشتم که در صورت امکان لطفا پاسخ دهید . چطور میشه برنامه فوق را به نحوی تغییر داد که مثلا بروی ساعت 12:00 که پیش فرض تعریف کردید lcd دیگری پیام Alarm را نمایش دهد و قبل از خاموش باشد یا پیغام wait را نمایش دهد . این بار درگاه های خروجی درگاه d باشد. ممنون

                دیدگاه


                  #38
                  پاسخ : اشکال در برنامه نویسی

                  نوشته اصلی توسط kamran1991
                  درود مجدد آقا سامان

                  والا تا حالا کار نکرده بودم ولی بسیار مایلم که شروع کنم و آشنا بشم .

                  تو این چند روزه حسابی اذیت تون کردم باید ببخشید . یه درخواست و خواهش داشتم که در صورت امکان لطفا پاسخ دهید . چطور میشه برنامه فوق را به نحوی تغییر داد که مثلا بروی ساعت 12:00 که پیش فرض تعریف کردید lcd دیگری پیام Alarm را نمایش دهد و قبل از خاموش باشد یا پیغام wait را نمایش دهد . این بار درگاه های خروجی درگاه d باشد. ممنون
                  درود
                  خواهش میکنم ...
                  متوجه نشدم ... شما میخواین دوتا LCD بگذارید ؟؟
                  اگه اونجوری میخواین بلد نیستم ... چرا روی همین LCD نمایش نمی دهید ؟؟ همه کارها رو روی همین انجام بده ...

                  میشه دوباره توضیح بدید ؟ متوجه نشدم
                  ممنون
                  [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                  معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                  معرفی نرم افزار Codewizard PWM
                  با من بیشتر آشنا شوید

                  دیدگاه


                    #39
                    پاسخ : اشکال در برنامه نویسی

                    درود

                    چون lcd دیگری دارم گفتم اون را هم به کار بگیرم . بیشتر مد نظرم روی این هست که ساعت آلارم را توسط خود میکرو و روی مدار بتوان تنظیم کرد .
                    یا مثلا بشه توسط lcd دیگر ساعتی که قرار هست تنظیم بشود را نشان داد و وقتی ساعت به همان لحظه رسید در lcd اول نمایش alarm بدهد .
                    این ساعت های کوچک مچی دیجیتال قدیمی که قابلیت الارم داشتند نحوه کارشان به چه صورت است ؟ یه چیزی مثل همان مد نظرم هست

                    دیدگاه


                      #40
                      پاسخ : اشکال در برنامه نویسی

                      نوشته اصلی توسط kamran1991
                      درود

                      چون lcd دیگری دارم گفتم اون را هم به کار بگیرم . بیشتر مد نظرم روی این هست که ساعت آلارم را توسط خود میکرو و روی مدار بتوان تنظیم کرد .
                      یا مثلا بشه توسط lcd دیگر ساعتی که قرار هست تنظیم بشود را نشان داد و وقتی ساعت به همان لحظه رسید در lcd اول نمایش alarm بدهد .
                      این ساعت های کوچک مچی دیجیتال قدیمی که قابلیت الارم داشتند نحوه کارشان به چه صورت است ؟ یه چیزی مثل همان مد نظرم هست
                      درود دوست خوبم
                      میخواین یه برنامه بنویسم که روی همون LCD بتوانید تنظیم کنید؟ چند منظوره ...
                      الان نمیتونم
                      باید برم جایی عصر که برگشتم ...
                      موفق باشید
                      [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                      معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                      معرفی نرم افزار Codewizard PWM
                      با من بیشتر آشنا شوید

                      دیدگاه


                        #41
                        پاسخ : اشکال در برنامه نویسی

                        درود آقا سامان
                        اگر این کار را کنی که لطف بزرگی بر من کردی

                        برنامه به گونه ای باشد که مثلا دو پایه از درگاه d قابلیت تنظیم کردن ساعت و دقیقه را به طور جداگانه داشته باشه و البته روی lcd نیز به مدت 2 ثانیه نشان دهد سپس ساعت عادی را نشان دهد و با رسیدن به زمان تایمر پیغامی را نشان دهد (شبیه به همان ساعت های دیجیتال مچی قدیمی )
                        تشکر فراوان

                        دیدگاه


                          #42
                          پاسخ : اشکال در برنامه نویسی

                          آقا سامان وقت کردی برنامه را به صورت فوق بی زحمت تغییر بده . خیلی ممنون

                          دیدگاه


                            #43
                            پاسخ : اشکال در برنامه نویسی

                            نوشته اصلی توسط kamran1991
                            آقا سامان وقت کردی برنامه را به صورت فوق بی زحمت تغییر بده . خیلی ممنون
                            چشم عزیزم
                            مینویسم براتون ...
                            [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                            معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                            معرفی نرم افزار Codewizard PWM
                            با من بیشتر آشنا شوید

                            دیدگاه


                              #44
                              پاسخ : اشکال در برنامه نویسی

                              آقا سامان تا امشب حداکثر میخوامش ، باید فردا تخویل بدم D:

                              دیدگاه


                                #45
                                پاسخ : اشکال در برنامه نویسی

                                نوشته اصلی توسط kamran1991
                                آقا سامان تا امشب حداکثر میخوامش ، باید فردا تخویل بدم D:
                                درود
                                بفرمایید
                                http://s5.picofile.com/file/8157054292/test_clock3.zip.html
                                طوری برنامه نوشتم که اگر دکمه ها رو بگیرید سریع تر اضافه میکنه ...
                                یه بازر هم گذاشتم ...
                                حتما پیش از بستن مدار شماتیکی که در پروتئوس کشیدم رو ببینید ...
                                خودتون دیگه نگاهش کنید هرجاش سوالی بود در خدمتم ...

                                موفق باشید
                                [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                                معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                                معرفی نرم افزار Codewizard PWM
                                با من بیشتر آشنا شوید

                                دیدگاه

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