اطلاعیه

Collapse
No announcement yet.

سوالی در خصوص usart

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

    #31
    پاسخ : پاسخ : پاسخ : سوالی در خصوص usart

    نوشته اصلی توسط علی ایمانی فر
    نه الزامی نیست
    اتفاقا به نظر من نزاری بهتره
    میگم یه LCD دیگه بگیر تست کن شاید LCD خرابه
    راستی من خودم همیشه LCD رو چپرو وصل میکنم و به جای 1 تا 16 به صورت 16 تا 1 وصل میکنم :mrgreen: شما یوقت همچین اشتباهی رو نکردی.
    بابا این دومین lcd که امتحان کردم، بازم lcd بگیرم. از سه ماه تابستون فقط درحال قطعه عوض کردنم. حتی میکرومم عوض کردم همون برد! اول 7اس داشتم. :angry: :angry: ~x(
    اولا که خیر همون 1تا 16 وصل کردم
    دوما که بالافرض اینکارم کرده باشم چه فرقی میکنه پایه دو همچنان دو پایه 3 همچنان 3 شماره پایه ها که تغییر نمیکنه جای سیم ها فرق میکنه. دیگه.!!!


    :angry: :angry: :angry: :angry: :angry: :angry: :angry: ~x( ~x( ~x(
    قطره بارون گرچه خیلی کوچیکه ، اما همیشه یک گل تشنه منتظر باریدنشه...!

    دیدگاه


      #32
      پاسخ : سوالی در خصوص usart

      سلام
      ببخشید یهو پریدم وسط بحث
      الان این تاپیک مال راه اندازی usart هست یا lcd ؟

      قبل از تابع lcd_init یه تاخیر در حد 10-20 میلی ثانیه بذار

      از اونجایی که آرم سرعت start up بالایی داره تا بنده خدا lcd بیاد بفهمه که تغذیه ش وصل شده میکرو کل کامند هارو فرستاده :biggrin:

      تجربه شخصی بود گفتم شاید به کار بیاد.
      تولید کننده انواع تابلو فرمان آسانسور با تکنولوژی روز دنیا

      دیدگاه


        #33
        پاسخ : سوالی در خصوص usart

        نوشته اصلی توسط mehdi_nxp
        سلام
        ببخشید یهو پریدم وسط بحث
        الان این تاپیک مال راه اندازی usart هست یا lcd ؟

        قبل از تابع lcd_init یه تاخیر در حد 10-20 میلی ثانیه بذار

        از اونجایی که آرم سرعت start up بالایی داره تا بنده خدا lcd بیاد بفهمه که تغذیه ش وصل شده میکرو کل کامند هارو فرستاده :biggrin:

        تجربه شخصی بود گفتم شاید به کار بیاد.
        سلام
        وقتتون بخیر
        ممنون از ارایه تجربه شخصیتون اما بازم جواب نداد . :angry:

        delay_ms(20);
        lcd_init();
        lcd_clear();


        در مورد راه اندازی واحد یوزارت و adc ، جناب اقای ایمانی فر فرمودند که اول adc با lcd امتحان کنم. مطمعن بشم که مبدل انالوگ به دیجیتال درست کار میکنه بعد از یوزارت گله کنم.
        که اونم lcd کلا پاسخگو نبود adc هم برداشتم یه برنامه ساده lcd هم نوشتم بازم جواب نداد.
        قطره بارون گرچه خیلی کوچیکه ، اما همیشه یک گل تشنه منتظر باریدنشه...!

        دیدگاه


          #34
          پاسخ : سوالی در خصوص usart

          سلام
          وقتتون بخیر

          یسوالی داشتم از خدمتتون

          من برای این برنامه از یه نوع lcd دیگه استفاده کردم اما باز هم lcd هیچی نمایش نمیده. فقط صفحه روشن میشه و فقطم مستطیل های سطر پایین روشن میشه و مستطیل های سطر بالا روشن نمیشه.
          واحد یوزارت میکرو هم امتحان کردم اما هیچی روی ترمینال کدویژن نمایش نداد جز صفر! یعنی فقط صفر و برام ارسال میکنه.

          با توجه به اینکه برنامه های پیشنهادی این فروم هم تست کردم اما جوابی نداده امکان داره میکروی من مشکل داشته باشه؟ یا سوخته باشه؟
          البته من قبل از استفاده از adc و usart و lcd یه برنامه ساده چشمک زن نوشتم و اونو امتحان کردم درست کار کرده!
          غیر از این برنامه چشمک زن نمیشه فهمید که میکرو درست پروگرم شده یا نه؟
          قطره بارون گرچه خیلی کوچیکه ، اما همیشه یک گل تشنه منتظر باریدنشه...!

          دیدگاه


            #35
            پاسخ : سوالی در خصوص usart

            نوشته اصلی توسط teymoori
            سلام
            وقتتون بخیر

            یسوالی داشتم از خدمتتون

            من برای این برنامه از یه نوع lcd دیگه استفاده کردم اما باز هم lcd هیچی نمایش نمیده. فقط صفحه روشن میشه و فقطم مستطیل های سطر پایین روشن میشه و مستطیل های سطر بالا روشن نمیشه.
            واحد یوزارت میکرو هم امتحان کردم اما هیچی روی ترمینال کدویژن نمایش نداد جز صفر! یعنی فقط صفر و برام ارسال میکنه.

            با توجه به اینکه برنامه های پیشنهادی این فروم هم تست کردم اما جوابی نداده امکان داره میکروی من مشکل داشته باشه؟ یا سوخته باشه؟
            البته من قبل از استفاده از adc و usart و lcd یه برنامه ساده چشمک زن نوشتم و اونو امتحان کردم درست کار کرده!
            غیر از این برنامه چشمک زن نمیشه فهمید که میکرو درست پروگرم شده یا نه؟
            وقتی چشمک زن کار میکنه بعید میدونم خراب باشه
            شما برای اطمینان بیشتر یه برنامه چشمک زن برای کل پایه ها بنویس و تک تک پایه ها رو تست کن
            نیازی هم نیست برای هر پایه یه LED بزاری. میتونی با یه LED به نوبت تک تک پایه ها رو تست کنی

            در ضمن در مورد LCD باید بگم که با توجه به شرایطی که فرمودید LCD کاملا سالمه. این که یه سطر همه روشن و یکی خاموش باشه نشانه سلامتشه
            زندگی یعنی امید و حرکت
            کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
            سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
            برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
            به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

            دیدگاه


              #36
              پاسخ : پاسخ : سوالی در خصوص usart

              نوشته اصلی توسط علی ایمانی فر
              وقتی چشمک زن کار میکنه بعید میدونم خراب باشه
              شما برای اطمینان بیشتر یه برنامه چشمک زن برای کل پایه ها بنویس و تک تک پایه ها رو تست کن
              نیازی هم نیست برای هر پایه یه LED بزاری. میتونی با یه LED به نوبت تک تک پایه ها رو تست کنی

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

              من پایه هارو امتحان کردم با led پایه های پورت b اصن روشن نمیشدن اما پایه های پورت a روشن میشدن.
              برنامم اینه:


              #include <AT91SAM7x256.H>
              #include "delay.h"

              int main()
              {
              *AT91C_PIOB_PER = 0x00000000;
              *AT91C_PIOB_OER= 0x00000000;
              while (1)
              {
              *AT91C_PIOB_SODR =0x00000000;
              delay_ms(1);
              *AT91C_PIOB_CODR = 0x00000000;
              delay_ms(1);
              }
              }

              برای هرپایه تغییر میدادم . اما پورت b کار نمیکرد پورت a کار میکرد.
              اشکال از برناممه یا واقعا میکروش کار نمیکنه؟

              البته بعد از اینکه lcd رو به پایه های پورت a وصل کردم بازم جواب نمیداد. برنامه سریال هم اجرا کردم اما جواب نداد.
              قطره بارون گرچه خیلی کوچیکه ، اما همیشه یک گل تشنه منتظر باریدنشه...!

              دیدگاه


                #37
                پاسخ : پاسخ : سوالی در خصوص usart

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

                من پایه هارو امتحان کردم با led پایه های پورت b اصن روشن نمیشدن اما پایه های پورت a روشن میشدن.
                برنامم اینه:


                #include <AT91SAM7x256.H>
                #include "delay.h"

                int main()
                {
                *AT91C_PIOB_PER = 0x00000000;
                *AT91C_PIOB_OER= 0x00000000;
                while (1)
                {
                *AT91C_PIOB_SODR =0x00000000;
                delay_ms(1);
                *AT91C_PIOB_CODR = 0x00000000;
                delay_ms(1);
                }
                }

                برای هرپایه تغییر میدادم . اما پورت b کار نمیکرد پورت a کار میکرد.
                اشکال از برناممه یا واقعا میکروش کار نمیکنه؟

                البته بعد از اینکه lcd رو به پایه های پورت a وصل کردم بازم جواب نمیداد. برنامه سریال هم اجرا کردم اما جواب نداد.
                خب ببنید برنامتون مشکل داره
                شما به همه چی صفر اختصاص دادین اون وقت چه انتظاری دارین؟
                کد:
                *AT91C_PIOB_OER= 0x00000000;		
                AT91C_PIOB_SODR =0x00000000;
                درست میگم؟
                باید 0xFFFFFFFF رو بهش بدین نه 0
                زندگی یعنی امید و حرکت
                کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                دیدگاه


                  #38
                  پاسخ : پاسخ : سوالی در خصوص usart

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

                  من پایه هارو امتحان کردم با led پایه های پورت b اصن روشن نمیشدن اما پایه های پورت a روشن میشدن.
                  برنامم اینه:


                  #include <AT91SAM7x256.H>
                  #include "delay.h"

                  int main()
                  {
                  *AT91C_PIOB_PER = 0x00000000;
                  *AT91C_PIOB_OER= 0x00000000;
                  while (1)
                  {
                  *AT91C_PIOB_SODR =0x00000000;
                  delay_ms(1);
                  *AT91C_PIOB_CODR = 0x00000000;
                  delay_ms(1);
                  }
                  }

                  برای هرپایه تغییر میدادم . اما پورت b کار نمیکرد پورت a کار میکرد.
                  اشکال از برناممه یا واقعا میکروش کار نمیکنه؟

                  البته بعد از اینکه lcd رو به پایه های پورت a وصل کردم بازم جواب نمیداد. برنامه سریال هم اجرا کردم اما جواب نداد.
                  piob رو از در pmc نباید تنظیم کنن؟

                  دیدگاه


                    #39
                    پاسخ : پاسخ : سوالی در خصوص usart

                    نوشته اصلی توسط gizmo89
                    piob رو از در pmc نباید تنظیم کنن؟
                    منظورت فعال کردن کلاکه؟
                    کلاک فقط برای ورودی لازمه و برای کار کردن در حالت خروجی به کلاک احتیاج نداریم
                    زندگی یعنی امید و حرکت
                    کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                    سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                    برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                    به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                    دیدگاه


                      #40
                      پاسخ : پاسخ : پاسخ : سوالی در خصوص usart

                      نوشته اصلی توسط علی ایمانی فر
                      خب ببنید برنامتون مشکل داره
                      شما به همه چی صفر اختصاص دادین اون وقت چه انتظاری دارین؟
                      کد:
                      *AT91C_PIOB_OER= 0x00000000;		
                      AT91C_PIOB_SODR =0x00000000;
                      درست میگم؟
                      باید 0xFFFFFFFF رو بهش بدین نه 0
                      بله درست میگین توقعات زیادی داشتم از میکرو بیچاره!!!

                      باید برای پورت b0 ؛ 0x00000001 میدادم.

                      یسوال میشه این برنامه هم نگا کنین ببنین کجاش اشتباهه . آخه پایه های میکرو که درستن اتصالات lcd هم چک کردم با تست اتصال کوتاه همه ی پایه های lcd به پایه های میکروم وصل بودن . زمین و تغذیه اشم درست بود. وصل بود.
                      گفتین اگه ال سی دی یه ردیف مستطیل های سیاه رنگ پر بشه و یه ردیف خاموش یعنی ال سی دی درست کار میکنه.
                      پس ممکن هست اشکال از برنامه ام باشه .

                      اگه امکانش هست این برنامه رو نگا کنین اشکالش کجاست.
                      خیلی خیلی ممنون .

                      #include "AT91SAM7x256.h"
                      #include "usart.h"
                      #include "stdio.h"
                      #include "delay.h"
                      #include <adc.h>


                      #define LCD_PORT_B
                      #define LCD_RS 0
                      #define LCD_RW 1
                      #define LCD_E 2
                      #define LCD_DB4 3
                      #define LCD_DB5 4
                      #define LCD_DB6 5
                      #define LCD_DB7 6

                      #include "lcd.h"

                      int a,i;
                      int main(void)
                      {
                      delay_ms(3);
                      lcd_init();
                      lcd_clear();
                      cursor_off();
                      config_adc(0x01);
                      lcd_putsf("ADC Test"

                      *AT91C_PIOA_PER =0x00080000;
                      *AT91C_PIOA_OER= 0x00080000;
                      USART(18432000,9600,0);
                      usart0_init();
                      printf("%d",a);

                      while(1)


                      { start_adc();
                      *AT91C_PIOA_SODR =0x00080000;
                      delay_ms(1);
                      *AT91C_PIOA_CODR =0x00080000;
                      delay_ms(1);

                      lcd_gotoxy(1,0);
                      delay_ms(4);
                      a= read_adc(0);

                      lcd_putsf("ADC Value: "
                      if (a==0)lcd_putchar('0'
                      else lcd_puts(a);
                      lcd_putsf(" "
                      delay_ms(1);




                      }
                      }
                      قطره بارون گرچه خیلی کوچیکه ، اما همیشه یک گل تشنه منتظر باریدنشه...!

                      دیدگاه


                        #41
                        پاسخ : سوالی در خصوص usart

                        بله انتظارتون خیلی زیاد زیاد بوش ازش :mrgreen:
                        البته من منظورم این بود که همه پایه ها رو در آن واحد خروجی تعریف کنید و همشون رو هی یک کنید و بعد یه تاخیر دوباره صفر کنید. که کافی بود به جای 0x00000001 از 0xFFFFFFFF استفاده می کردید.
                        گفتین اگه ال سی دی یه ردیف مستطیل های سیاه رنگ پر بشه و یه ردیف خاموش یعنی ال سی دی درست کار میکنه.
                        من گفتم اگه اینجوری باشه LCD سالمه و خراب نیست

                        برنامه رو تا این خط خوندم
                        کد:
                        lcd_putsf("ADC Test");
                        و میشه گفت تا اینجا باید ADC Test رو نمایش بده. البته بهتره که قبلش یه خط دیگه برنامه اضافه کنید و اون خط هم اینه
                        کد:
                        lcd_gotoxy(1,1);
                        اون تاخیری رو هم که چند خط بالا تر گذاشتین بیشترش کنید مثلا توی (delay_ms(3 به جای 3 از 2000 استفاده کنید.
                        تا اینجا رو جواب بگیرید تا از LCD مطمئن بشین بعد میریم ادامه برنامه رو جلو
                        زندگی یعنی امید و حرکت
                        کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                        سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                        برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                        به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                        دیدگاه


                          #42
                          پاسخ : پاسخ : سوالی در خصوص usart

                          نوشته اصلی توسط علی ایمانی فر
                          بله انتظارتون خیلی زیاد زیاد بوش ازش :mrgreen:
                          البته من منظورم این بود که همه پایه ها رو در آن واحد خروجی تعریف کنید و همشون رو هی یک کنید و بعد یه تاخیر دوباره صفر کنید. که کافی بود به جای 0x00000001 از 0xFFFFFFFF استفاده می کردید.من گفتم اگه اینجوری باشه LCD سالمه و خراب نیست

                          برنامه رو تا این خط خوندم
                          کد:
                          lcd_putsf("ADC Test");
                          و میشه گفت تا اینجا باید ADC Test رو نمایش بده. البته بهتره که قبلش یه خط دیگه برنامه اضافه کنید و اون خط هم اینه
                          کد:
                          lcd_gotoxy(1,1);
                          اون تاخیری رو هم که چند خط بالا تر گذاشتین بیشترش کنید مثلا توی (delay_ms(3 به جای 3 از 2000 استفاده کنید.
                          تا اینجا رو جواب بگیرید تا از LCD مطمئن بشین بعد میریم ادامه برنامه رو جلو
                          سلام
                          ممنون از وقتی که گذاشتین اما بازم چیزی نشون نداد.

                          #include "AT91SAM7x256.h"
                          #include "usart.h"
                          #include "stdio.h"
                          #include "delay.h"
                          #include <adc.h>


                          #define LCD_PORT_B
                          #define LCD_RS 0
                          #define LCD_RW 1
                          #define LCD_E 2
                          #define LCD_DB4 3
                          #define LCD_DB5 4
                          #define LCD_DB6 5
                          #define LCD_DB7 6

                          #include "lcd.h"

                          int a,i;
                          int main(void)
                          {
                          delay_ms(2000);
                          lcd_init();
                          lcd_clear();
                          cursor_off();
                          config_adc(0x01);
                          lcd_gotoxy(1,1);
                          lcd_putsf("ADC Test"

                          من برای برنامه چشمک زن هم تاخیر در پرانتز دستور delay یک در نظر گرفتم فکر نمیکنم این ms باشه بیشتر بصورت یک ثانیه عمل میکرد. یعنی من delay_ms(1 )
                          مینوشتم در برنامه چشمک زن ؛ led به اندازه یک ثانیه چشمک میزد.

                          اینجا هم وقتی تاخیر رو کم مینویسم مثلا 3 یا کمتر صفحه نمایش lcd چند بار نورش کم و زیاد میشه. اما وقتی تاخیر 2000 مینویسم نور صفحه نمایش ثابت میمونه.

                          قطره بارون گرچه خیلی کوچیکه ، اما همیشه یک گل تشنه منتظر باریدنشه...!

                          دیدگاه


                            #43
                            پاسخ : سوالی در خصوص usart

                            با سلام

                            بنظرتون ممکن هست میکرو من خراب شده باشه و من اگه از یه میکرو دیگه استفاده کنم مشکل برنامه حل میشه؟
                            قطره بارون گرچه خیلی کوچیکه ، اما همیشه یک گل تشنه منتظر باریدنشه...!

                            دیدگاه


                              #44
                              پاسخ : سوالی در خصوص usart

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

                              بنظرتون ممکن هست میکرو من خراب شده باشه و من اگه از یه میکرو دیگه استفاده کنم مشکل برنامه حل میشه؟
                              ببینید من بهتون گفتم اگه میخاین از میکرو مطمئن بشین باید همه پایه هارو صفر و یک کنی (همشون). و اگه همشون صفر و یک کشدن پس میکرو سالمه.
                              در ضمن یکی دیگه از دلائل خرابی میکرو عدم پروگرم شدنشه که برای شما میشه
                              راستی موقع کامپایل کردن ارروری یا وارنینگی نمیده؟
                              زندگی یعنی امید و حرکت
                              کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
                              سؤالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
                              برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
                              به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!

                              دیدگاه


                                #45
                                پاسخ : پاسخ : سوالی در خصوص usart

                                نوشته اصلی توسط علی ایمانی فر
                                ببینید من بهتون گفتم اگه میخاین از میکرو مطمئن بشین باید همه پایه هارو صفر و یک کنی (همشون). و اگه همشون صفر و یک کشدن پس میکرو سالمه.
                                در ضمن یکی دیگه از دلائل خرابی میکرو عدم پروگرم شدنشه که برای شما میشه
                                راستی موقع کامپایل کردن ارروری یا وارنینگی نمیده؟
                                همه پایه های پورت a,b یکی یکی چک کردم و روشن و خاموش مشد. فقط من تاخیری که واسش نوشته بودم یک میلی ثانیه بوده اما یک میلی ثانیه رو یک ثانیه نمایش میداد .برای همین فکر کردم تابع تاخیر اشتباهه و تاخییرات و تو برنامه اینقد کم در نظر گرفتم.

                                نه برنامه هیچ اروری نمیده.نه ارور نه وارنینگ.

                                من یسوال داشتم: من این برنامه براساس همون برنامه های نمونه که تو سایت وجود داشته نوشتم.یعنی دستورات همون دستوراته میخواستم بدونم لازمه کلاک برای این میکرو تعیین بشه یعنی تنظیمات پیش فرضی غیر از دستورات نداره.؟ مثلا من دارم یه موج سینوسی AC با فرکانس 1کیلو هرتز استفاده میکنم.نباید تو برنامه ام تعیین کنم که فرکانس نمونه برداریم چقدره؟ یا کلاکش چقد باید باشه؟ اگه میشه راهنمایی کنین که چطوری باید اینا رو به برنامه ام اضافه کنم .
                                ممکن هست بخاطر درنظر نگرفتن کلاک سیستم این میکرو برنامه ها رو اجرا نمیکرده؟
                                من نباید برای ورودی هام کلاک و درنظر میگرفتم؟ممکن lcd هم به این خاطر جواب نداده باشه؟
                                ممنون
                                قطره بارون گرچه خیلی کوچیکه ، اما همیشه یک گل تشنه منتظر باریدنشه...!

                                دیدگاه

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