قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

A-M-S
:: مهندس جيد ::
تاريخ التسجيل: May 2014
المشاركات: 242
نشاط [ A-M-S ]
قوة السمعة:
قديم 01-01-2015, 08:49 PM المشاركة 9   
sun



كود:
unsigned int x; unsigned char y; //4MHz crystal void interrupt(){ x++; if(x==1000){y++;x=0;} if(y==5){ PORTB=0; y=0; } tmr0=131; INTCON.T0IF = 0; } void main() { intcon=0b10100000; option_reg=0x03; tmr0=131; trisa=15; porta=0; trisb=0; portb=0; while(1){ if(ra0_bit==1) {y=0;rb0_bit=1;rb1_bit=0;} if(ra1_bit==1) {y=0;rb1_bit=1;rb0_bit=0;} if(ra2_bit==1) {y=0;rb2_bit=1;rb3_bit=0} if(ra3_bit==1) {y=0;rb3_bit=1;rb2_bit=0;} } }
بارك الله فيك و في اولادك و رزقك من حيث لا تحتسب اخي greenhonet..
فعلا هذا هو المطلوب بالضبط اخي ...مجهود رائع جزاك الله كل خير...و الشكر موصول لكل الاخوه الذين قاموا بالمساعده...دمتم ذخرا لهذا المنتدى الكريم...

اعلانات

ABOUYAGINE
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2012
المشاركات: 61
نشاط [ ABOUYAGINE ]
قوة السمعة:
قديم 02-01-2015, 12:59 AM المشاركة 10   
افتراضي


كود:
unsigned int x; unsigned char y; //4MHz crystal void interrupt(){ x++; if(x==1000){y++;x=0;} if(y==5){ PORTB=0; y=0; } tmr0=131; INTCON.T0IF = 0; } void main() { intcon=0b10100000; option_reg=0x03; tmr0=131; trisa=15; porta=0; trisb=0; portb=0; while(1){ if(ra0_bit==1) {y=0;rb0_bit=1;rb1_bit=0;} if(ra1_bit==1) {y=0;rb1_bit=1;rb0_bit=0;} if(ra2_bit==1) {y=0;rb2_bit=1;rb3_bit=0} if(ra3_bit==1) {y=0;rb3_bit=1;rb2_bit=0;} } }
السلام عليكم أخي
أردت منك أن تشرح لنا الinterrupt التي قمت بها
شكرا

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

greenhonet
:: مهندس ::
تاريخ التسجيل: Dec 2014
المشاركات: 5
نشاط [ greenhonet ]
قوة السمعة:
قديم 02-01-2015, 02:31 AM المشاركة 11   
افتراضي




sorry correction

كود:
void interrupt(){ x++; if(x==500){y++;x=0;} if(y==15){ PORTB=0; y=0; }
(in case of using 4MHz crystal the time of every instruction is 1 s (frequency/4
so timer0 takes 125 s to count from 131 to 256(125=256-131)

(and if we use prescaler= 16 the interrupt hapen evry 2ms (125 s x 16

so x increase by 1 every 2ms and y increase by 1 if x = 500 so y increase every 1s

and if y=15(after 15 second) PORTb will turn off




greenhonet
:: مهندس ::
تاريخ التسجيل: Dec 2014
المشاركات: 5
نشاط [ greenhonet ]
قوة السمعة:
قديم 02-01-2015, 02:39 AM المشاركة 12   
افتراضي



update : sperate the turn of a&b leds from those of c&d

كود:
  unsigned int x;

  unsigned char y;
  unsigned char p;


void interrupt(){
   x++;
if(x==500){y++;p++;x=0;}
   if(y==15){
    rb0_bit=0;rb1_bit=0;
    y=0;
    }

   if(p==15){
    rb3_bit=0;rb2_bit=0;
    p=0;
    }
                        
    tmr0=131;
    INTCON.T0IF = 0;         

                }

void main() {
          intcon=0b10100000;
          option_reg=0x03;     
          tmr0=131;

trisa=15;
porta=0;
trisb=0;
portb=0;
 
while(1){

if(ra0_bit==1) {y=0;rb0_bit=1;rb1_bit=0;}
if(ra1_bit==1) {y=0;rb1_bit=1;rb0_bit=0;}
if(ra2_bit==1) {p=0;rb2_bit=1;rb3_bit=0}
if(ra3_bit==1) {p=0;rb3_bit=1;rb2_bit=0;}
}


A-M-S
:: مهندس جيد ::
تاريخ التسجيل: May 2014
المشاركات: 242
نشاط [ A-M-S ]
قوة السمعة:
قديم 02-01-2015, 07:01 PM المشاركة 13   
sun




sorry correction

كود:
void interrupt(){ x++; if(x==500){y++;x=0;} if(y==15){ PORTB=0; y=0; }
(in case of using 4MHz crystal the time of every instruction is 1 s (frequency/4
so timer0 takes 125 s to count from 131 to 256(125=256-131)

(and if we use prescaler= 16 the interrupt hapen evry 2ms (125 s x 16

so x increase by 1 every 2ms and y increase by 1 if x = 500 so y increase every 1s

and if y=15(after 15 second) PORTb will turn off


شكرا لك اخي greenhonet//فعلا كنت اريد ان اسألك بالنسبه لكيفية تغيير الوقت (delay) و ها انت قمت بالاجابه من قبل ان اسألك // شكرا لك مره اخرى



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 07:12 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)