اطلاعیه

Collapse
No announcement yet.

آموزش جامع AVR با نرم افزار Bascom

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

    #46
    پاسخ : آموزش جامع AVR با نرم افزار Bascom

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

    دیدگاه


      #47
      پاسخ : آموزش جامع AVR با نرم افزار Bascom

      دریک نمونه گیری توسط adc میکروکنترلر - هرباراز چند مقدار بدست آمده در آن میخواهیم مقدار ماکزیممی که بدست آمده را مشخص کنیم . برای اینکار از چه دستورالعملی می توان اسفاده کرد؟ لطفا راهنمایی فرمایید

      دیدگاه


        #48
        پاسخ : حلقه ها و دستورات شرطی

        نوشته اصلی توسط سوران آراسته
        حلقه ها و دستورات شرطی

        ایجاد حلقه تکرار
        Do ..Loop

        فرم کلی دستور به شکل زیر است:
        Do
        Statements
        Loop [Until expression:تا زمان درستی شرط]

        تا زمانی که شرط درست باشد این حلقه تکرار میآ‌شود و چون شرط حلقه در پایان آن است پس حداقل یک بار اجرا میآ‌شود.
        نکته:از این حلقه در اکثر موارد به عنوان حلقه بی نهایت و بدون شرط استفاده میآ‌شود و همچنین با دستور Exit DOمیآ‌توان از حلقه خارج شد.
        حلقه تکرار محدود
        For … Next

        شکل کلی حلقه:
        For Var=Start To End [Step Value]Next var

        Var:مانند یک شمارنده عمل میآ‌کند.
        Start:مقدار اولیه (ثابت یا متغیر عددی)
        End:مقدار نهایی (ثابت یا متغیر عددی)
        Step Value:مقدار گام حلقه میآ‌باشد که میآ‌تواند مثبت یا منفی باشد و اگر نوشته نشود مقدار 1 در نظر گرفته میآ‌شود.

        حلقه while
        شکل کلی دستور:
        WHILE condition
        statements
        WEND

        Condition : شرط حلقه
        Statements : دستورات حلقه
        Wend : پایان حلقه

        انجام عملیات شرطی
        IF ... THEN

        دستور IF به صورتآ‌های مختلفی مورد استفاده قرار میآ‌گیرد که در زیر 3 نمونه از آن نشان داده میآ‌شود:
        شکل ساده دستور:IF comp or( comps )Then Statement
        Comp:شرط مورد نظر است.در صورتیکه بیش از یک شرط داشته باشیم، شروط را در داخل پرانتز قرار داده و با توابع منطقی مانند OR و AND از هم جدا میآ‌کنیم.
        Statement:دستوری که در صورت درستی شرط اجرا میآ‌شود و در صورت عدم درستی شرط برنامه به خط بعد از شرط IF منتقل میآ‌شود.
        اگر بیش از یک دستور Statement داشته باشیم دستور IF به شکل زیر استفاده میآ‌شود:
        IF comp or( comps ) Then
        Statement
        End IF

        در صورتی که هم تعداد شروط و هم تعداد Statement ها بیش از یکی باشد از فرم زیر استفاده میآ‌شود:
        IF comp or( comps ) Then
        Statement 1
        Elseif comp or( comps ) Then
        Statement 2
        Elseif comp or( comps ) Then
        Statement 3
        .
        .
        .
        Else
        Statement n
        End IF


        اتصال کلید به پین با دستور Debounce
        شکل کلی دستور:
        Debounce Px.y , state , label

        Px.y:X نام پورت و Y نام پایه ای از پورت است که به عنوان ورودی تعریف شده است.
        State:وضعیت کلید که 0 یا 1 میآ‌باشد.پردازنده بابررسی وضعیت پایهY و مقایسه آن با State، در صورت برابری به برچسب Lable پرش میآ‌کند و در غیر این صورت برنامه از خط بعد از دستور Debounce ادامه پیدا میآ‌کند.
        Lable:نام یک تابع است که خود شامل یک سری دستورات است و در انتهای آن باید از دستور Return استفاده کرد تا به برنامه اصلی بعد از Debounce برگردد.
        نکته:در اتصال کلیدها به میکرو باید از مقاومتآ‌های بالاکش (Pull Up) و یا پایین کش (PullDown) مطابق با برنامه خود استفاده کنید در غیر این صورت میکرو دچار مشکل خواهد میآ‌شود.
        مناسبآ‌ترین مقاومتآ‌ها برای PullDown و یا Pull Up کردن کلیدها،مقاومتآ‌های 3.3 کیلواهم تا 10 کیلواهم میآ‌باشند.
        نکته:بر روی برد آموزشی از مقاومتآ‌هایPullup استفاده نشده و باید از Pullup داخلی استفاده کنید.

        انتظار برای بیتBITWAIT
        شکل کلی دستور:
        BITWAIT Pinx.y,Set/Reset

        Px.y:X نام پورت و Y نام پایه ای از پورت است که به عنوان ورودی تعریف شده است.
        این دستور تا زمانی که پین مورد نظر به دلخواه SET یا Reset نشود، برنامه را در همان خط متوقف میآ‌کند.

        استفاده از عملگرها و توابع در برنامه نویسی
        نرم افزار بسکام این امکان را فراهم کرده که بتوان در برنامه نویسی از عملگرها و توابع ریاضی مانند جمع، ضرب، سینوس، کسینوس و...و یا توابعی آماده غیر از توابع ریاضی استفاده کرد.در جداول زیر لیست تمام عملگرها و یک سری از توابع ریاضی آورده شده است.




        نکات:
        • نوع متغیرهای Var و X باید از نوع Single باشد.
        • تمامی توابع مثلثاتی بر حسب رادیان هستند.


        تا این قسمت یک سری از اصول برنامه نوسی به زبان بیسیک را آموختید. برای فهم بهتر دستورات در پایان هر بخش مثال هایی عملی آورده خواهد شد.
        همانطور که در پست اول ذکر شد این مثال ها بر مبنای برد آموزشی AVR شرکت ECA می باشند.
        ----------------------------------------------------------------------------------------------------------------------------
        مثال اول : رقص نور ساده با 8 LED
        http://eca.ir/sharing/uploads/13416650481.rar
        مثال دوم : رقص نور پیشرفته با 8 LED
        http://eca.ir/sharing/uploads/13417395221.rar
        مثال سوم : شمارنده باینری 0 تا 15 با چهار LED
        http://eca.ir/sharing/uploads/13417419361.rar
        مثال چهارم : روشن و خاموش کردن LED با کلید
        http://eca.ir/sharing/uploads/13418122051.rar

        دیدگاه


          #49
          پاسخ : آموزش جامع AVR با نرم افزار Bascom

          سلام
          لطفا نحوه ۱۶ بیتی کردن پورت های ۸ بیتی avr در بسکام را توضیح دهید

          دیدگاه


            #50
            پاسخ : آموزش جامع AVR با نرم افزار Bascom

            سلام
            یه برنامه تایمر با آلارم با بسکام نوشتم که چنتا اشکال داره لطفا" منو راهنمایی کنید:
            1- برنامه قسمت قرمز رنگ رو ( Gosub ) نمیره .چرا؟
            2- میخام بعداز حلقه برنامه تایمر تموم شه و برنامه بره توی حلقه دماسنج که نمیره ( قسمت سبز رنگ ).چرا؟
            do
            debounce set,0,s
            debounce down,0,d
            debounce Up,0,u
            decr secend
            if ss=00 then
            decr mm
            ss=00
            end if
            .
            .
            .
            .
            if hour<Hour1 and minute>minute1 then gosub A
            if hour=0 and minute=0 then goto thermometer
            .
            .
            .
            .
            loop
            return
            a:
            set alarm
            return
            با تشکر
            تخیل مهمتر از دانش است
            علم محدود است اما تخیل دنیا را دربر میآ‌گیرد
            آلبرت انیشتین

            دیدگاه


              #51
              پاسخ : آموزش جامع AVR با نرم افزار Bascom

              ای کاش چن نفری به این قسمت میرسدن.واقعا حیفه یه همچین موضوعی بیکار بشینه.از اساتید خواهش میکنم نزارین این موضوع بسته بشه وبرای افراد مبتدی مثل من منت بزارن این موضوع رو سرپا نگه دارنواز این قسمت خیلی چیزا میشه یاد گرفت.تشکر میکنم :read:

              دیدگاه


                #52
                پاسخ : آموزش جامع AVR با نرم افزار Bascom

                سلام دوستان من یه مشکلی با بسکام دارم . برنامه نویسی من در سطح ابتدایه
                یه زمان رو با میکرو میگیرم که با دقت هزارم ثانیه هست مثل 0135:580 که به ترتیب ملی ثانیه و ثانیه و دقیقه و ساعت هست
                و زمان دوم هم مثلا یه عدی مثل 0210:300 هست که دقیقا به ترتیب بالا میباشد میلی ثانه ام سه رقم هست
                حالا مشکلی که دارم پایه هاا با هم فرق میکنه من چطوری زمان بین این دو مقدار رو به دست بیارم هر جوری فکر کردم یه جا اشتباه میشه موندم چطوری بنویسم
                حالا اگر بتونید بهم راه کار بدید ممنوم میشم که چطوری اینا رو از هم کم کنم و زمان بین اینا رو بدست بیارم

                دیدگاه


                  #53
                  پاسخ : آموزش جامع AVR با نرم افزار Bascom

                  یکم موقع تایپ عج وج شده بود اصلاحش کردم . من یه زمانسنج دارم زمان رو نشون میده میام دو بار از این زمانسنج با فاصله زمان رو ذخیره میکنم مقدار زمانی رو که بین این دو زمان ذخیره شده بود رو میخوام بدونم
                  مثلا
                  زمان اول 01.30.25.600 یک ساعت و سی دقیقه و بیست و پنج ثانیه و ششصد میلی ثانیه
                  زمان دوم 02.20.10.200 دو ساعت و بیست دقیقه و ده ثانیه و دویست میلی ثانیه
                  پایه ها برابر نیست نمیشه یه تفریق معمولی کرد اینو چطوری پیاده کنم که زمان بین این دو مقدار رو مثلا پیدا کنم من فقط بسکام بلدم حالا راه کار بدید سعی میکنم برنامه شو بنویسم

                  دیدگاه


                    #54
                    پاسخ : آموزش جامع AVR با نرم افزار Bascom

                    سلام
                    سنسور DS18B20 رو با میکرو ATMEGA8 راه اندازی کردم و دما رو ال سی دی دارم .
                    چون مبتدی هستم و تازه یه چیزهای دست و پا شکسته یاد گرفتم از بسکام و حالا نیاز دارم زمانی که دما از یه درجه ای بالاتر رفت یکی از پایه های میکرو رو یک کنم
                    دستور شرطشو دقیقا نمیدونم چی باید بنویسم .
                    من اینو از میکرو میخوام زمانی که دما از 70 درجه رد شد یکی از پایه هارو یک کنه و تا زمانی که دما زیر 70 نیومد پایه یک باشه.
                    همین یه خط دستور رو اگه راهنمائیم کنید خیلی خیلی ممنون میشم

                    دیدگاه


                      #55
                      پاسخ : آموزش جامع AVR با نرم افزار Bascom

                      If Y >70 THEN SET PORTC.4
                      IF Y <70 THEN RESET PORTC.4
                      این میشه جواب سوالم
                      سوال میکنم یکی پیدا نمیشه راهنمایی کنه ناچارا میگردم تو اینترنت تا به نتیجه میرسم.

                      دیدگاه


                        #56
                        پاسخ : آموزش جامع AVR با نرم افزار Bascom

                        نوشته اصلی توسط mehdy_1363 نمایش پست ها
                        If Y >70 THEN SET PORTC.4
                        IF Y <70 THEN RESET PORTC.4
                        این میشه جواب سوالم
                        سوال میکنم یکی پیدا نمیشه راهنمایی کنه ناچارا میگردم تو اینترنت تا به نتیجه میرسم.
                        سلام خدمت دوستان
                        همیشه همیشه همیشه قبل از پرسیدن سوال قبلش از علامه گوگل بپرسین و بعد اگه در نهایت سردرگمی بودین اون وقت بیاین و بپرسین (تازه با توضیحات کامل که شامل کد و شماتیک بشه)
                        همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
                        لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
                        تایپیک های من:
                        حل تمام مشکلات atmega128a (eca.ir)
                        آموزش کار با سایت (eca.ir)

                        دیدگاه


                          #57
                          پاسخ : آموزش جامع AVR با نرم افزار Bascom

                          با عرض سلام خدمت اساتید محترم سایت
                          بنده در برنامه بسکام مشکلی داشتم میخواستم آنرا در انجمن مطرح کنیم نمیدونم اینجا میتونم مشکل رو مطرح کنم یا نه؟
                          در ضمن بنده فقط در انجمن مطالعه میکنم تا یاد بگیرم و پستی ندارم لذا نتونستم تاپیک جدیدی ایجاد کنم اگه راهنمایی بفرمایید متشکر میشوم
                          با تشکر آیدین

                          دیدگاه


                            #58
                            پاسخ : آموزش جامع AVR با نرم افزار Bascom

                            سلام خدمت دوستان
                            اختیار دارین
                            سوالتون رو اگر در موضوع مرتبط بپرسین هیچ اشکالی نداره
                            ما جواب می دیم
                            همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
                            لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
                            تایپیک های من:
                            حل تمام مشکلات atmega128a (eca.ir)
                            آموزش کار با سایت (eca.ir)

                            دیدگاه

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