اطلاعیه

Collapse
No announcement yet.

آموزش زبان سی

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

    پاسخ : آموزش زبان سی

    برنامه ی من زمان یک ثانیه رو تنظیم کرده ام که هر یک ثانیه وقفه رخ دهد ولی کار نمی کند و توی برنامه پورت سی نداریم پس چرا باید اونو برابر با 30 کنم :question:
    من توی برنامه پورت C رو خروجی قرار نداده بودم و فرمان ON-OFF ال ای دی در بردار وقفه داده بودم گفتم شاید
    پروتئوس برای همین خطا میگیره کلآ من با پرتئوس میانه خوبی ندارم و تمام برنامه ها رو روی برد تست میگیرم.
    این برنامه هم بدون خطا کامپایل شد و جواب داد .

    اگر شاد بودی آرام بخند تا غم بیدار نشود

    دیدگاه


      پاسخ : آموزش زبان سی

      نوشته اصلی توسط Ghasede del
      من توی برنامه پورت C رو خروجی قرار نداده بودم و فرمان ON-OFF ال ای دی در بردار وقفه داده بودم گفتم شاید
      پروتئوس برای همین خطا میگیره کلآ من با پرتئوس میانه خوبی ندارم و تمام برنامه ها رو روی برد تست میگیرم.
      این برنامه هم بدون خطا کامپایل شد و جواب داد .
      پس برنامه ما هم باید توی عمل جواب بده دیگه درسته :question:
      مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

      دیدگاه


        پاسخ : آموزش زبان سی

        پس برنامه ما هم باید توی عمل جواب بده دیگه درسته :question:
        پس در عمل تست نکردین.
        خب تستش کنید.

        اگر شاد بودی آرام بخند تا غم بیدار نشود

        دیدگاه


          پاسخ : آموزش زبان سی

          سلام
          راستی میدونید مشکل مدار چی بود باید یک حلقه بینهایت دیگه اضاف می کردم این کار رو که کردم توی پروتئوس جواب داد
          یک سوال برای ایجاد دو تا موج باید از دوتا تایمر کانتر استفاده کنم آیا ؟
          مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

          دیدگاه


            پاسخ : آموزش زبان سی

            نوشته اصلی توسط سید مصطفی طبسی
            سلام
            یک سوال بچه گونه دارم :mrgreen: که متوجه نمیشم برنامه زیر و نگاه کنید خیلی سادیه ولی من اون خط قرمزو متوجه نمیشم و نمیدونم چرا احساس می کنم باید این شکلی همیشه بنویسیم
            if(PINC&0b00100000==0b00100000)
            لطفا دربارش برام توضیج بدید
            #include <mega32.h>


            void main(void)
            {
            while(1)
            {
            DDRC=0x00;
            DDRB=0xFF;
            if(PINC&0b00100000)
            PORTB=0b01010101;
            else
            PORTB=0xAA;

            }
            }


            در این حالت pinC با عددی که با اون & شده مقایسه میشه و اگر برابر بودن خروجی یعنی شرط if برابر با '1' یعنی true می شه. و شرط اجرا میشه و دیگه نیازی به قسمت بعد از == نیست!

            دیدگاه


              پاسخ : آموزش زبان سی و کدویژن

              سلام
              دوتا سوال از یک برگه ی امتحانی دارم
              نوشته
              1 - برنامه ای بنویسید که هر موقع سریز تایمر 0 اتفاق بیفتد پورت A یکی رو به بالا بشمارد و. تایمر 0 هر ثانیه یکبار سریز می کند . همزمان تایمر 0 با استفاده از پالسی رو به بالا می شمارد . هر موقع شمارش به عدد 200 رسید , پایه ی PB6 تغییر وضعیت دهد .
              مشکل من توی همون خط قرمزه اگر یک مثالی برام بزنید که تایمر صفر با یک پالس بشماره خیلی سپاس گذار میشم .
              2 - اگر بخواهیم تایمر 0 را در مد نرمال با مقسم فرکانس 64 و با استفاده از ساعت داخلی برای مبع ساعت و در لبه ی بالا روند ه تنظیم کنیم مقدار TCCR0 را بیابید
              مشکل م توی این سوال اینه که آیا میشه TCCR0 هم توی فرکانس 64 و هم توی لبه ی بالارونده تنظیم بشه ( یعنی هر دوش باهم ) ؟
              مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

              دیدگاه


                پاسخ : پاسخ : آموزش زبان سی و کدویژن

                نوشته اصلی توسط سید مصطفی طبسی
                سلام
                دوتا سوال از یک برگه ی امتحانی دارم
                نوشته
                1 - برنامه ای بنویسید که هر موقع سریز تایمر 0 اتفاق بیفتد پورت A یکی رو به بالا بشمارد و. تایمر 0 هر ثانیه یکبار سریز می کند . همزمان تایمر 0 با استفاده از پالسی رو به بالا می شمارد . هر موقع شمارش به عدد 200 رسید , پایه ی PB6 تغییر وضعیت دهد .
                مشکل من توی همون خط قرمزه اگر یک مثالی برام بزنید که تایمر صفر با یک پالس بشماره خیلی سپاس گذار میشم .
                2 - اگر بخواهیم تایمر 0 را در مد نرمال با مقسم فرکانس 64 و با استفاده از ساعت داخلی برای مبع ساعت و در لبه ی بالا روند ه تنظیم کنیم مقدار TCCR0 را بیابید
                مشکل م توی این سوال اینه که آیا میشه TCCR0 هم توی فرکانس 64 و هم توی لبه ی بالارونده تنظیم بشه ( یعنی هر دوش باهم ) ؟
                هر دو تا سوالتون عجیبه!
                TC0 (Timer/Counter0) با تنظیم بیت های TCCR0 یا در مد تایمری قرار می گیره(که سر یک زمان مشخصی سرریز میشه و پرچم وقفش میره بالا) و یا این که در مد کانتری راه میفته(که پالس های پایه مربوطه رو میشماره)، بنابراین این که همزمان هم به عنوان تایمر عمل کنه و هم بتونه پالس بشماره به احتمال 99% نشدینه(اون 1% هم من همیشه احتمال خطا می ذارم به طور پیش فرض حتی اگه بیان نشه!!)
                مگر این که منظور سوال چیز دیگه ای باشه، مثلا برای سوال 1 منظورش این باشه که بعد از 1ثانیه که سرریز شد، حالا بره و پالس رو با شرایط مذکور بشماره!
                اونچیزی که در دانشگاه یاد میگیرید، "الفبایی" هست برای نوشتن یک "رمان" !!

                دیدگاه


                  پاسخ : آموزش زبان سی

                  نوشته اصلی توسط ☺بابابرقی☺
                  هر دو تا سوالتون عجیبه!
                  TC0 (Timer/Counter0) با تنظیم بیت های TCCR0 یا در مد تایمری قرار می گیره(که سر یک زمان مشخصی سرریز میشه و پرچم وقفش میره بالا) و یا این که در مد کانتری راه میفته(که پالس های پایه مربوطه رو میشماره)، بنابراین این که همزمان هم به عنوان تایمر عمل کنه و هم بتونه پالس بشماره به احتمال 99% نشدینه(اون 1% هم من همیشه احتمال خطا می ذارم به طور پیش فرض حتی اگه بیان نشه!!)
                  مگر این که منظور سوال چیز دیگه ای باشه، مثلا برای سوال 1 منظورش این باشه که بعد از 1ثانیه که سرریز شد، حالا بره و پالس رو با شرایط مذکور بشماره!
                  سوال دومی حتما اشتباهه درسته ؟ این از سوال دومی
                  حالا که شما این طوری گفتید چون گفته همزمان پس شاید دومیه یا اولیه تایمر دو یا یک بوده درسته حالا این سوال درسته دیگه یا نه ؟ بازم ایراد داره آیا ؟
                  مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

                  دیدگاه


                    پاسخ : آموزش زبان سی

                    نوشته اصلی توسط سید مصطفی طبسی
                    سوال دومی حتما اشتباهه درسته ؟ این از سوال دومی
                    حالا که شما این طوری گفتید چون گفته همزمان پس شاید دومیه یا اولیه تایمر دو یا یک بوده درسته حالا این سوال درسته دیگه یا نه ؟ بازم ایراد داره آیا ؟
                    با اون اوصافی که نقل شد آره دوتاشون اشتباهه
                    شاید دومیه یا اولیه تایمر دو یا یک بوده درسته
                    برای کدوم سوال منظورتونه؟
                    برای اولی آره احتمالش هست، اما برای دومی فکر نمی کنم چون گفته TCCR0 رو به دست بیارید
                    اونچیزی که در دانشگاه یاد میگیرید، "الفبایی" هست برای نوشتن یک "رمان" !!

                    دیدگاه


                      پاسخ : آموزش زبان سی

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

                      مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

                      دیدگاه


                        پاسخ : آموزش زبان سی

                        سلام دوستان. ممنون از زحماتتون :applause:
                        یه سوال دارم: میخوام مقدار ADC رو در یه عددی ضرب کنم و اونو بدم به delay یعنی در واقع مقدار دیلی(به فرض X) با توجه به ADC تغییر کنه. چه طور میتونم این برنامه رو بنویسم؟ (delay_ms(X
                        خیلی ممنون مییشم پاسخ بفرمایید
                        لطفا سوالات فنی رو به جای پیام خصوصی در انجمن مطرح کنید.

                        دیدگاه


                          پاسخ : آموزش زبان سی

                          نوشته اصلی توسط محسن محمدشاهی
                          ُلام دوستان. ممنون از زحماتتون :applause:
                          یه سوال دارم: میخوام مقدار ADC رو در یه عددی ضرب کنم و اونو بدم به delay یعنی در واقع مقدار دیلی(به فرض X) با توجه به ADC تغییر کنه. چه طور میتونم این برنامه رو بنویسم؟ (delay_ms(X
                          خیلی ممنون مییشم پاسخ بفرمایید
                          نباید سخت باشه
                          شما ایکس رو یک متغیر قرار بده
                          و مقدار adc رو برابر با متغیر قرار بده
                          مولا علی (ع) میفرمایند : آسوده باش , آستین هارا بالا بزن , بر خدا توکل کن , آنگاه خدا را خواهی دید که زودتر از تو دست به کار شده است .

                          دیدگاه

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