اطلاعیه

Collapse
No announcement yet.

[گفتگو و تبادل نظر] سوالات برنامه نویسی در کامپایلر CCS

Collapse
این موضوع برجسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پاسخ : سوالات برنامه نویسی در کامپایلر CCS

    سلام

    برای PIC18F2550 چه بوت لودری استفاده میکنید؟
    من Microchip HID Bootloader را امتحان کردم.با قسمت Remap کردن در CCS مشکل دارم

    دیدگاه


      پاسخ : سوالات برنامه نویسی در کامپایلر CCS

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

      برای PIC18F2550 چه بوت لودری استفاده میکنید؟
      من Microchip HID Bootloader را امتحان کردم.با قسمت Remap کردن در CCS مشکل دارم
      من با اون بوت لودر کار نکردم پس در اون مورد کمکی نمیتونم بکنم. من از Tiny PIC bootloader استفاده کردم. خوب و ساده است.
      کمی کار کنید جواب میگیرید.
      جدیدترین ویرایش توسط شاهرخ مستقیمی; ۱۲:۰۴ ۱۳۹۵/۰۳/۲۰.

      دیدگاه


        پاسخ : سوالات برنامه نویسی در کامپایلر CCS

        نوشته اصلی توسط freedom_truth
        من با اون بوت لودر کار نکردم پس در اون مورد کمکی نمیتونم بکنم. من از Tiny PIC bootloader استفاده کردم. خوب و ساده است.
        کمی کار کنید جوار میگیرید.
        سلام
        اینو دیدیم. اما چون 2550 usb داره گفتم از HID Bootloader استفاده کنم

        دیدگاه


          پاسخ : سوالات برنامه نویسی در کامپایلر CCS

          سلام دوستان
          وقت تون بخیر
          من قبلا این سوال را مطرح کرده بودم اما متاسفانه جوابم را نگرفتم کسی از دوستان از watch dog timer میکرو pic18f4550 جواب گرفته؟
          من طبق راهنمای ccs عمل کردم اما جواب نداد. کسی از دوستان برنامه نمونه ای نداره که من تست کنم؟ (از کامپایلر ccs استفاده می کنم)
          با تشکر

          دیدگاه


            پاسخ : سوالات برنامه نویسی در کامپایلر CCS

            چطور دوتا میکرو با spi با هم ارتباط برقرار میکنن من از ccs استفاده میکنم اما نتونستم

            دیدگاه


              پاسخ : سوالات برنامه نویسی در کامپایلر CCS

              سلام ccs کتابخونه ای برای sd کارت داره؟

              دلیل: ادغام دو پست برای جلوگیری از اسپم

              از ccs برای میکروهای dspic هم میتوان استفاده کرد؟؟

              دیدگاه


                پاسخ : سوالات برنامه نویسی در کامپایلر CCS

                سلام بچه ها
                من آنالوگ کارم. کارم مخابراته. تازه با دنیای دیجیتال دارم آشنا می شم، الان مدتیه نیاز دارم که یه آی سی PLL به شماره TSA5511 رو با ارتباط I2C با میکرو PIC16F84A درایو کنم. توی نت مدارو فایل هگزش هست، حتی چند نمونه سورس برنامه به زبان بیسیک هم دیدم ولی من می خوام خودم این آی سی رو راه بندازم با نرم افزار CCS . برنامه رو هم نوشتم. درواقع 5تا بایت رو پشت سره هم می فرسته به آی سی TSA5511 و بعد یه بایت رو می خونه از TSA5511 که اگر بیت ششم (یعنی flag.6) این بایت یک باشه TSA5511 اسیلاتور رو توی فرکانس مورد نظر LOCK می کنه. موضوع اینه که تو نرم افزار پروتئوس که شبیه سازیش می کنم بعد از ارسال هر بایت ،باید acknowledge رو گیرنده ارسال کنه تا بایت بعدی رو بتونه دریافت کنه ولی No acknowledge رو می فرسته و اینکه درک درستی از این ارسال و دریافت ندارم.رو ی LCD هم چیزی نشون نمیده. ببخشید اگر سوالاته من مبتدیه. و اینکه اگر سوالو توی این تا پیک نباید می نوشتم لطفا راهنمایی کنید تا جای مناسب بفرستم.
                اینم عکس از شبیه سازیش تو پروتئوس و کد توی CCS

                دیدگاه


                  پاسخ : سوالات برنامه نویسی در کامپایلر CCS

                  سلام.
                  برنامه رو خودتون از اول نوشتین؟
                  میکروی 16F84A ماژول I2C نداره و حتما I2C نرم افزاری استفاده کردین. اگر مقدور باشه براتون، از میکرویی استفاده کنین که I2C سخت افزاری داشته باشه.
                  این رو عملی تست بکنین در صورت امکان. به پروتئوس چندان اعتمادی نیست!

                  دیدگاه


                    پاسخ : سوالات برنامه نویسی در کامپایلر CCS

                    نوشته اصلی توسط شاهرخ مستقیمی نمایش پست ها
                    سلام.
                    برنامه رو خودتون از اول نوشتین؟
                    میکروی 16F84A ماژول I2C نداره و حتما I2C نرم افزاری استفاده کردین. اگر مقدور باشه براتون، از میکرویی استفاده کنین که I2C سخت افزاری داشته باشه.
                    این رو عملی تست بکنین در صورت امکان. به پروتئوس چندان اعتمادی نیست!
                    سلام آقای مستقیمی
                    نمی دونید چقدر خوشحال شدم بهم جواب دادید. کلی دلگرم شدم.
                    بله شما درست می گید ، PIC16F84A ماژول I2C نداره و به صورت نرم افزاری واسش پین های SDA و SCL رو تعریف می کنیم. تو اینترنت هرچی پروژه با این آی سی TSA5511 هست همه از PIC16F84A و یا از PIC16F628A استفاده کردن که فرق چندانی با هم ندارن.
                    بله آقای مستقیمی ، برنامه رو خودم نوشتم. توی عمل هم تست کردم ولی متاسفانه چیزی نشون نمی ده و فرکانس رو لاک نمی کنه.
                    آقای مستقیمی این کانفیگ پین های LCD رو درست زدم؟ پایه RW توی LCD رو من زمین می کنم و اصلا نیازی نیست به پایه خاصی وصل بشه ولی توی CCS ارور می داد و ازم می خواست که واسه RW هم یه پایه مشخص کنم که منم تعریف کردم که به پایه A4 بخوره. اینم مداره پیکربندیش


                    دیدگاه


                      پین ورودی و خروجی

                      سلام

                      وقتی دو پین میکرو به هم وصل هستند (بهم وصل کردیم) و یکی ورودی و دیگری خروجی است چطوری میشه وقتی خروجی روی پین خروجی است پینی که ورودی است بی تاپیر باشه و برعکس .خواندن پین ورودی و قراردادن خروجی رو پین ورودی همزمان نیست. آیا با تعیین جهت این پین ها میشه این کار را کرد؟

                      SET_TRIS_C( 0x80 ); پین شماره 8 پورت C ورودی
                      SET_TRIS_C( 0x00 ); پین شماره 7 پورت C خروجی

                      آیا یک پین میکرو PIC وضعیتی به غیر از ورودی و خروجی داره؟

                      چطوری میشه یک پین را در CCS بصورت tri-state تعریف کرد؟
                      جدیدترین ویرایش توسط اشکان غفارزاده; ۱۱:۲۴ ۱۳۹۵/۰۵/۲۱.

                      دیدگاه


                        پاسخ : [گفتگو و تبادل نظر] سوالات برنامه نویسی در کامپایلر CCS

                        نوشته اصلی توسط sazhad نمایش پست ها
                        سلام آقای مستقیمینمی دونید چقدر خوشحال شدم بهم جواب دادید. کلی دلگرم شدم.بله شما درست می گید ، PIC16F84A ماژول I2C نداره و به صورت نرم افزاری واسش پین های SDA و SCL رو تعریف می کنیم. تو اینترنت هرچی پروژه با این آی سی TSA5511 هست همه از PIC16F84A و یا از PIC16F628A استفاده کردن که فرق چندانی با هم ندارن. بله آقای مستقیمی ، برنامه رو خودم نوشتم. توی عمل هم تست کردم ولی متاسفانه چیزی نشون نمی ده و فرکانس رو لاک نمی کنه. آقای مستقیمی این کانفیگ پین های LCD رو درست زدم؟ پایه RW توی LCD رو من زمین می کنم و اصلا نیازی نیست به پایه خاصی وصل بشه ولی توی CCS ارور می داد و ازم می خواست که واسه RW هم یه پایه مشخص کنم که منم تعریف کردم که به پایه A4 بخوره. اینم مداره پیکربندیشhttp://www.4shared.com/photo/e_ckoLCPce/8watts-pll.htmlhttp://www.4shared.com/photo/c1AMmRZ...atts-ctrl.htmlhttp://www.4shared.com/photo/Ji9kWZ8rba/8-watts-rf.html
                        سلام.ببخشید دیر جواب دادم.پایه ی A.4 مستقیما قابل استفاده نیست و باید با یه مقاومت به Vcc وصلش کنین، بعدش قابل استفاده میشه.( چون Open Drain هست)به نقشه که نگاه میکردم، احساس کردم بک لایت رو هم کنترل میکنین؟ اگر بله، فکر کنم بهتره باشه با یه ترانزیستور بک لایت رو قطع و وصل کنین.بقیه نقشه که قسمت های مربوط به فرستنده بود رو چیزی متوجه نشدم!اگر مقدور هست، میشه سورس برنامه رو هم قرار بدین؟
                        جدیدترین ویرایش توسط شاهرخ مستقیمی; ۱۴:۴۹ ۱۳۹۵/۰۵/۲۲.

                        دیدگاه


                          پاسخ : سوالات برنامه نویسی در کامپایلر CCS

                          سلام
                          میخوام با 18f452 فرکانس پالس ورودی رو محاسبه کنم.بدین منظور اونرو به پایه اینتراپت صفر وصل کردم و توی دو بار آشکار سازی لبه بالارونده فواصل زمانی رو اندازه میگیرم.
                          این فاصله زمانی باید منتج به فرکانس بشه ولی هر بار یک عدد میخونم.مثلا 50.1 هرتز و 50.3 و 49.9 و ... یعنی حدود 0.5 هرتز خطا دارم.
                          علت رو نمیدونم چرا.لطفا راهنمایی کنید

                          با تشکر

                          دیدگاه


                            پاسخ : [گفتگو و تبادل نظر] سوالات برنامه نویسی در کامپایلر CCS

                            همین که تو این گرفتاریا جواب می دید واسه من کافیه
                            من فهمیدم که توی CCS اگر بخوایم پایه های LCD رو تعریف کنیم باید همه پایه ها رو رو یه پورت تعریف کرد و چون من RW رو روی پایه A4 تعریف کردم روی LCD چیزی نشون نمی داد. خلاصه این قضیه نشون دادن LCD حل شد، الان موضوع اینه که اگر بخوایم 4تا بایت با پروتکل I2C بفرستیم و توی پروتئوس وصلش کنیم به دیباگر I2C بطوری که اول بایت آدرس رو بفرسته بعد 4تا بایت دیتارو و بخواهیم بین هر بایت حرف A (که همون مخفف کلمه Acknowledge)رو بنویسه چیکار باید کرد؟ چون وقتی من این برنامه رو می نویسم بعد از هر بایت N رو می فرسته که بیانگره Nacknowledge هستش یعنی تایید نمی کنه که بایت بعدی هم هست واسه همین بنظرم توی مدار من آی سی TSA5511 نمی فهمه که بایتهای دیگه هم داره واسش ارسال می شه . واسه همین می گم تو CCS دستور خاصی واسه ارسال بیت acknowledge داریم یا نه؟ اگر نداریم چیکار باید بکنم؟

                            در جواب سوالتون بله واسه جنگولک مدار خواستم بک لایت رو هم کنترل کنم ولی بنظرم فعلا اول ارتباط I2C رو راه بندازم بعد می رم سراغ بک لایت و فعلا LCD رو کلا حذف می کنم چون تو مداری که PCB رو زدم LCD با همون پیکربندی اولیه بسته شده یعنی RW رو به زمین وصله، E به پایه RA3 و DB7 و DB6 و DB5 و DB4 به ترتیب به RB3 و RB2 و RB1 و RB0 و همونطور که فهمیدم نمی شه این پیکربندی رو تو CCS ایجاد کرد.

                            سورس اصلی برنامه هم زبانش فکر کنم ترکی باشه واستون می زارم ولی با کامپایلر Proton هست واسه همین تونسته LCD رو به نحوی که گفتم پیکربندی کنه چون تو Proton میشه. اگر هم صلاح دونستید یه تاپیک واسه این سورس بزنیم که با Proton نوشته شده.

                            اینم سورس خودم با CCS

                            اینم عکس از شبیه سازی با پروتئوسش
                            اینم سورس اصلی برنامه با کامپایلر Proton

                            جدیدترین ویرایش توسط شاهرخ مستقیمی; ۱۹:۰۴ ۱۳۹۵/۰۵/۲۲.

                            دیدگاه


                              پاسخ : [گفتگو و تبادل نظر] سوالات برنامه نویسی در کامپایلر CCS

                              نوشته اصلی توسط sazhad نمایش پست ها
                              همین که تو این گرفتاریا جواب می دید واسه من کافیه
                              من فهمیدم که توی CCS اگر بخوایم پایه های LCD رو تعریف کنیم باید همه پایه ها رو رو یه پورت تعریف کرد و چون من RW رو روی پایه A4 تعریف کردم روی LCD چیزی نشون نمی داد. خلاصه این قضیه نشون دادن LCD حل شد، الان موضوع اینه که اگر بخوایم 4تا بایت با پروتکل I2C بفرستیم و توی پروتئوس وصلش کنیم به دیباگر I2C بطوری که اول بایت آدرس رو بفرسته بعد 4تا بایت دیتارو و بخواهیم بین هر بایت حرف A (که همون مخفف کلمه Acknowledge)رو بنویسه چیکار باید کرد؟ چون وقتی من این برنامه رو می نویسم بعد از هر بایت N رو می فرسته که بیانگره Nacknowledge هستش یعنی تایید نمی کنه که بایت بعدی هم هست واسه همین بنظرم توی مدار من آی سی TSA5511 نمی فهمه که بایتهای دیگه هم داره واسش ارسال می شه . واسه همین می گم تو CCS دستور خاصی واسه ارسال بیت acknowledge داریم یا نه؟ اگر نداریم چیکار باید بکنم؟

                              در جواب سوالتون بله واسه جنگولک مدار خواستم بک لایت رو هم کنترل کنم ولی بنظرم فعلا اول ارتباط I2C رو راه بندازم بعد می رم سراغ بک لایت و فعلا LCD رو کلا حذف می کنم چون تو مداری که PCB رو زدم LCD با همون پیکربندی اولیه بسته شده یعنی RW رو به زمین وصله، E به پایه RA3 و DB7 و DB6 و DB5 و DB4 به ترتیب به RB3 و RB2 و RB1 و RB0 و همونطور که فهمیدم نمی شه این پیکربندی رو تو CCS ایجاد کرد.

                              سورس اصلی برنامه هم زبانش فکر کنم ترکی باشه واستون می زارم ولی با کامپایلر Proton هست واسه همین تونسته LCD رو به نحوی که گفتم پیکربندی کنه چون تو Proton میشه. اگر هم صلاح دونستید یه تاپیک واسه این سورس بزنیم که با Proton نوشته شده.

                              اینم سورس خودم با CCS

                              اینم عکس از شبیه سازی با پروتئوسش
                              اینم سورس اصلی برنامه با کامپایلر Proton

                              یه چیزی رو خجالت میکشم بگم! ولی باید گفت!
                              من تا الان قسمت نشده I2C کار کنم ولی به مثال های CCS که نگاه کردم، اکثرا بعد از ارسال دستور آدرس، دوباره فرمان استارت I2C رو فرستاده به دستگاه جانبی.
                              این رو امتحان بفرمایید، ان شاءالله که جواب بده.

                              دلیل: ادغام دو پست برای جلوگیری از اسپم

                              نوشته اصلی توسط texasinst نمایش پست ها
                              سلام
                              میخوام با 18f452 فرکانس پالس ورودی رو محاسبه کنم.بدین منظور اونرو به پایه اینتراپت صفر وصل کردم و توی دو بار آشکار سازی لبه بالارونده فواصل زمانی رو اندازه میگیرم.
                              این فاصله زمانی باید منتج به فرکانس بشه ولی هر بار یک عدد میخونم.مثلا 50.1 هرتز و 50.3 و 49.9 و ... یعنی حدود 0.5 هرتز خطا دارم.
                              علت رو نمیدونم چرا.لطفا راهنمایی کنید

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

                              دلیل: ادغام دو پست برای جلوگیری از اسپم

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

                              وقتی دو پین میکرو به هم وصل هستند (بهم وصل کردیم) و یکی ورودی و دیگری خروجی است چطوری میشه وقتی خروجی روی پین خروجی است پینی که ورودی است بی تاپیر باشه و برعکس .خواندن پین ورودی و قراردادن خروجی رو پین ورودی همزمان نیست. آیا با تعیین جهت این پین ها میشه این کار را کرد؟

                              SET_TRIS_C( 0x80 ); پین شماره 8 پورت C ورودی
                              SET_TRIS_C( 0x00 ); پین شماره 7 پورت C خروجی

                              آیا یک پین میکرو PIC وضعیتی به غیر از ورودی و خروجی داره؟

                              چطوری میشه یک پین را در CCS بصورت tri-state تعریف کرد؟
                              میشه بپرسم میخواین چیکار کنین؟ متوجه نشدم سوال اصلی شما چی هست؟
                              وقتی دو تا پایه به هم وصل هستن، یکی ورودی و یکی خروجی، پایه ای که خروجی تعریف شده، هر مقداری بهش ارسال بشه، ورودی هم همون رو میبینه و این کاملا واضح هست. اگر همون پایه که خروجی تعریف شده بود رو قرائت کنین، همون مقداری که توش نوشته شده رو برمیگردونه.
                              پین ها میکرو یا ورودی دیجیتال/ آنالوگ ( در صورت اشتراک با ورودی ADC) هستن و یا خروجی دیجیتال ( و اگر مبدل DAC داشته باشه، آنالوگ)

                              دیدگاه


                                پاسخ : [گفتگو و تبادل نظر] سوالات برنامه نویسی در کامپایلر CCS

                                نوشته اصلی توسط شاهرخ مستقیمی نمایش پست ها
                                سلام.
                                به جای استفاده از اینتراپت خارجی، از ورودی تایمر 0 استفاده بفرمایید، احتمالا برطرف بشه. شما دارین فرکانس برق شهر رو اندازه میگیرین؟
                                نتیجه رو اعلام کنین که چه جوابی داده.
                                با سپاس
                                ببخشید من درست متوجه نشدم.چطور با تایمر صفر میتونم بفهمم که باید زمان بین دو لبه بالارونده رو اندازه بگیرم؟
                                تا اونجایی که میدونم تایمر صفر فقط اینتراپت اورفلو داره . با روش شما چطور باید بفهمم که شروع به زمان گیری کنم و چطور بفهمم که پایان زمان گیری است؟

                                ممنون میشم راهنماییم کنید

                                با تشکر
                                جدیدترین ویرایش توسط شاهرخ مستقیمی; ۰۸:۲۱ ۱۳۹۵/۰۵/۲۳.

                                دیدگاه

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