امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
سه حالت رقص led
نویسنده پیام
hosseinip آفلاین
كاربر دو ستاره
**

ارسال‌ها: 107
موضوع‌ها: 27
تاریخ عضویت: مهر ۱۳۹۳

تشکرها : 105
( 40 تشکر در 15 ارسال )
ارسال: #1
Exclamation  سه حالت رقص led
سلام بر دوستان
میخواستم دستوری با CodeVision بنویسم که سه حالت رقص led روی یکی از پورت ها اجرا کند و با یک کلید سه حالت عوض شود
یعنی وقتی روشن شد بایکی از حالتها روشن شود و هر بار کلید زده شد حالت عوض شود و در اخر دوباره به حالت اول برگردد
میخوام با دستورات حالت این کار بکنم (حلقه استفاده نشود)
با دستور if نوشتم ولی یه سری مشکلات داره.

017

"... the quieter you become the more you are able hear "
(آخرین ویرایش در این ارسال: ۲۱-مهر-۱۳۹۳, ۲۲:۰۷:۰۷، توسط hosseinip.)
۲۱-مهر-۱۳۹۳, ۲۲:۰۵:۲۷
ارسال‌ها
پاسخ
aKaReZa75 آفلاین
حسین باقری
*****

ارسال‌ها: 1,483
موضوع‌ها: 21
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 4898
( 4575 تشکر در 1473 ارسال )
ارسال: #2
RE: سه حالت رقص led
حلقه باید باشه.
شما یه متغیر تعریف کن ، هر موقع که پین فلان 1 شد ، یک واحد به اون متغیر اضافه شه و با دستور switch برای مقادیر مختلف اون متغییر حالت رقص نورت عوض شه

سلام، من حسین باقری هستم، طراح الکترونیک و برنامه نویس میکروکنترلر.
توی کانال یوتیوب من قراراه طراحی انواع بردهای الکترونیکی مثل بردهای تک لایه، دو لایه یا به طور کلی بردهای چند لایه، بردهای مبتنی بر میکروکنترلر، بردهای صنعتی، بردهای الکترونیک قدرت و بردهای فرکانس بالارو یاد بگیریم.
همینطور کدنویسی انواع میکروکنترلرهای 8 بینی مثل میکروکنترلرهای خانواده AVR-STM8، میکروکنترلرهای میبتی بر معماری ARM مثل STM32 و پردازنده های مخصوص اینترنت اشیاء مثل ESP32-ESP8266 و DSPها یاد میگیریم.
در کنار مباحث گفت شده، اصول اندازه الکترونیکی، نحوه صحیح مونتاژ و عیب‌یابی بردهای الکترونیکی، شبیه سازی مدارات مختلف رو هم یاد میگیریم.
اگر علاقه مند به یادگیری موضوعات عنوان شده هستید، به کانال یوتیوب من با آدرس زیر سر بزنید.
https://www.youtube.com/@aKaReZa75
(آخرین ویرایش در این ارسال: ۲۱-مهر-۱۳۹۳, ۲۲:۲۵:۴۴، توسط aKaReZa75.)
۲۱-مهر-۱۳۹۳, ۲۲:۱۹:۰۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : hosseinip, رسول
hosseinip آفلاین
كاربر دو ستاره
**

ارسال‌ها: 107
موضوع‌ها: 27
تاریخ عضویت: مهر ۱۳۹۳

تشکرها : 105
( 40 تشکر در 15 ارسال )
ارسال: #3
RE: سه حالت رقص led
متشکرم منظورم از حلقه دستور دیگری جزئ whil نباشد
اگه whil باشد مشکلی ندارد درسته با دستور switch میشه نوشت .
اگه دستور کلی شو داشتی بزار
متشکرم

"... the quieter you become the more you are able hear "
۲۱-مهر-۱۳۹۳, ۲۲:۳۱:۵۰
ارسال‌ها
پاسخ
aKaReZa75 آفلاین
حسین باقری
*****

ارسال‌ها: 1,483
موضوع‌ها: 21
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 4898
( 4575 تشکر در 1473 ارسال )
ارسال: #4
RE: سه حالت رقص led
شبیه سازتو با فایل کدویژن رو برام بفرست تا بنویسمش برات

سلام، من حسین باقری هستم، طراح الکترونیک و برنامه نویس میکروکنترلر.
توی کانال یوتیوب من قراراه طراحی انواع بردهای الکترونیکی مثل بردهای تک لایه، دو لایه یا به طور کلی بردهای چند لایه، بردهای مبتنی بر میکروکنترلر، بردهای صنعتی، بردهای الکترونیک قدرت و بردهای فرکانس بالارو یاد بگیریم.
همینطور کدنویسی انواع میکروکنترلرهای 8 بینی مثل میکروکنترلرهای خانواده AVR-STM8، میکروکنترلرهای میبتی بر معماری ARM مثل STM32 و پردازنده های مخصوص اینترنت اشیاء مثل ESP32-ESP8266 و DSPها یاد میگیریم.
در کنار مباحث گفت شده، اصول اندازه الکترونیکی، نحوه صحیح مونتاژ و عیب‌یابی بردهای الکترونیکی، شبیه سازی مدارات مختلف رو هم یاد میگیریم.
اگر علاقه مند به یادگیری موضوعات عنوان شده هستید، به کانال یوتیوب من با آدرس زیر سر بزنید.
https://www.youtube.com/@aKaReZa75
۲۱-مهر-۱۳۹۳, ۲۲:۳۵:۵۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : hosseinip, رسول
hosseinip آفلاین
كاربر دو ستاره
**

ارسال‌ها: 107
موضوع‌ها: 27
تاریخ عضویت: مهر ۱۳۹۳

تشکرها : 105
( 40 تشکر در 15 ارسال )
ارسال: #5
RE: سه حالت رقص led
متشکرم برنامه اش با دستور switch نوشتم
اینم کدش وفایل شبیه سازشو پیوست کردم


کد php:
#include <mega32.h>
#include <delay.h>

unsigned char i=0,s=0,a=1,d[4]={0x81,0x42,0x24,0x18};

void main(void)
{
// Declare your local variables here



while (1)
      {
      
      switch(
s){
      case 
0:
      
PORTA=a;
      
delay_ms(300);
      
a=a<<1;
      
      if(
a==0)
      
a=1;
      
      if(
PIND.0==0){
      
delay_ms(200);
      while(
PIND.0==0);
      
i=0;
      
s=1;}
      
      
      
      
      break;
      case 
1:
      
PORTA=d[i];
      
delay_ms(300);
      
i++; 
      
      if(
i==4)
      
i=0;
      
      
      if(
PIND.0==0){
      
delay_ms(200);
      while(
PIND.0==0);
      
a=1;
      
s=0;}
      
      
      
      }

      }


"... the quieter you become the more you are able hear "
(آخرین ویرایش در این ارسال: ۲۳-مهر-۱۳۹۳, ۰۱:۲۷:۴۵، توسط hosseinip.)
۲۳-مهر-۱۳۹۳, ۰۱:۲۶:۲۵
ارسال‌ها
پاسخ
aKaReZa75 آفلاین
حسین باقری
*****

ارسال‌ها: 1,483
موضوع‌ها: 21
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 4898
( 4575 تشکر در 1473 ارسال )
ارسال: #6
RE: سه حالت رقص led
داداشه من بازم که همون اشتباه قبلیت رو تکرار کردی که !
گفتم برای پین وروردی باید DDR اون پین 0 باشه و بنا به نیازت اون پین رو pull up یا pull down کنی که بازم نکردی .
اما تو این پروژه از وقفه خارجی استفاده کردم که خیلی بهتر جواب میده ، تا if .
دلیلش رو میتونی بگی ؟


فایل‌(های) پیوست شده
.zip   test1.zip (اندازه: 164.24 KB / تعداد دفعات دریافت: 101)

سلام، من حسین باقری هستم، طراح الکترونیک و برنامه نویس میکروکنترلر.
توی کانال یوتیوب من قراراه طراحی انواع بردهای الکترونیکی مثل بردهای تک لایه، دو لایه یا به طور کلی بردهای چند لایه، بردهای مبتنی بر میکروکنترلر، بردهای صنعتی، بردهای الکترونیک قدرت و بردهای فرکانس بالارو یاد بگیریم.
همینطور کدنویسی انواع میکروکنترلرهای 8 بینی مثل میکروکنترلرهای خانواده AVR-STM8، میکروکنترلرهای میبتی بر معماری ARM مثل STM32 و پردازنده های مخصوص اینترنت اشیاء مثل ESP32-ESP8266 و DSPها یاد میگیریم.
در کنار مباحث گفت شده، اصول اندازه الکترونیکی، نحوه صحیح مونتاژ و عیب‌یابی بردهای الکترونیکی، شبیه سازی مدارات مختلف رو هم یاد میگیریم.
اگر علاقه مند به یادگیری موضوعات عنوان شده هستید، به کانال یوتیوب من با آدرس زیر سر بزنید.
https://www.youtube.com/@aKaReZa75
۲۳-مهر-۱۳۹۳, ۰۹:۰۵:۴۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : رسول, hosseinip
hosseinip آفلاین
كاربر دو ستاره
**

ارسال‌ها: 107
موضوع‌ها: 27
تاریخ عضویت: مهر ۱۳۹۳

تشکرها : 105
( 40 تشکر در 15 ارسال )
ارسال: #7
RE: سه حالت رقص led
سلام
من منظورتو بازم متوجه نشدم اگه منظورت اینه که DDR اون پین 0 باشه یعنی ورودی باشه وپورت 1 باشه یعنی pull up فعال باشه که همین طور
اگه میشه بیشتر توضیح بده !!!!!
اما در مورد وقفه خارجی اره شما درست میگید با وقفه خارجی بهتر جواب میده ودقت بالا تری دارد در این شکی نیست ولی من در این جا میخوام از delay استفاده کنم
بازم کد کامل ترش میزارم
بازم اگه مشکلی داره بگید!!!
متشکرم .
کد php:
#include <mega32.h>
#include <delay.h>
unsigned char s=0,a=0b00000001 ,i=0,d[4]={0x81,0x42,0x24,0x18};
void main(void)
{
PORTA=0x00;
DDRA=0xFF;

PORTD=0x01;
DDRD=0x00;
while (
1)
      {
      switch(
s)
        {
        case 
0:
        
PORTA=a;
        
delay_ms(200);
        
a=a<<1;
        if(
a==0)
        
        
a=1;
        
        if(
PIND.0==0)
        {
        
delay_ms(200);
        while(
PIND.0==0);
        
i=0;
        
s=1;
        }
        break;
        case 
1:
        
PORTA=d[i];
        
delay_ms(200); 
        
i++;
        if(
i==4)
        {
        
i=0;
        }
        if(
PIND.0==0)
        {
        
delay_ms(200);
        while(
PIND.0==0);
        
a=1;
        
s=0;
        }
        }
        
        
        }
      
      


"... the quieter you become the more you are able hear "
۱۲-آبان-۱۳۹۳, ۲۱:۲۹:۰۹
ارسال‌ها
پاسخ
hosseinip آفلاین
كاربر دو ستاره
**

ارسال‌ها: 107
موضوع‌ها: 27
تاریخ عضویت: مهر ۱۳۹۳

تشکرها : 105
( 40 تشکر در 15 ارسال )
ارسال: #8
RE: سه حالت رقص led
متشکرم از کدی که گذاشتیه کارم راه افتاد.

"... the quieter you become the more you are able hear "
۱۴-آبان-۱۳۹۳, ۰۰:۰۶:۳۸
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [سوال] پروگرم نکردن در حالت high ali009 3 2,778 ۰۳-شهریور-۱۳۹۶, ۲۰:۴۱:۴۰
آخرین ارسال: 1نفر
Question چطور پين هاي مخفي رو در پورتيوس از حالت مخفي دربيارم ؟ Abbaspour 5 3,467 ۰۵-دى-۱۳۸۸, ۱۷:۰۸:۰۲
آخرین ارسال: Abbaspour
  يك حالت براي tiny26l nex2004 7 2,372 ۰۱-فروردین-۱۳۸۶, ۲۲:۰۳:۲۷
آخرین ارسال: ha_60

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS