ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 11
  1. #1
    2013/04/17
    تهران
    786
    32

    بدست آوردن زمان دقیق 1 ثانیه

    سلام
    من میخوام زمان دقیق 1 ثانیه رو با استفاده از کریستال 32768 و میکرو کنترلر 16f877A در بیارم ..
    تو AVR و مگا 32 میشه با اتصال کریستال 32768 به پایه های مشخص شده و استفاده از تایمر کانتر 2 زمان دقیق 1 ثانیه رو بدست آورد ..
    تو PIC با کامپایلر CCS چطور این کار انجام میشه ؟؟
    اگه سوالم خیلی ابتدایی هست به بزرگی خودتون ببخشید و بذارین به حساب تازه کاریم تو PIC ...
    مرسی.
    یه نمونه برنامه میخواستم که با وقفه هر بار مثلا یک واحد به یه متغییر اضافه کنه ..
    اینم برنامه و شبیه ساز پروتیوس خودمه ولی متاسفانه جواب نمیده .. انگار وقفه اصلا تعریف نشده .. :

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    تیم کاوش در مسابقات بین المللی ایران اپن 2016.نمایشی.مین یاب.
    علم را باید در آزمایشگاه یاد گرفت نه در دانشگاه!
  2. #2
    2013/06/19
    1,544
    80

    پاسخ : بدست آوردن زمان دقيق 1 ثانيه

    يه متغير محلي توي تابع main تعريف کردين در صورتي که متغير global داره توي وقفه زياد ميشه. متغير a که توي main تعريف کردين رو پاک کنيد
    AYRIC
  3. #3
    2013/04/17
    تهران
    786
    32

    پاسخ : بدست آوردن زمان دقیق 1 ثانیه

    پاکشم کردم درست نشد..
    نمیدونم گیر این لعنتی کجاس..
    تیم کاوش در مسابقات بین المللی ایران اپن 2016.نمایشی.مین یاب.
    علم را باید در آزمایشگاه یاد گرفت نه در دانشگاه!
  4. #4
    2010/12/30
    53
    0

    پاسخ : بدست آوردن زمان دقیق 1 ثانیه

    نقل قول نوشته اصلی توسط sinaitg
    سلام
    من میخوام زمان دقیق 1 ثانیه رو با استفاده از کریستال 32768 و میکرو کنترلر 16f877A در بیارم ..
    تو AVR و مگا 32 میشه با اتصال کریستال 32768 به پایه های مشخص شده و استفاده از تایمر کانتر 2 زمان دقیق 1 ثانیه رو بدست آورد ..
    تو PIC با کامپایلر CCS چطور این کار انجام میشه ؟؟
    در میکروکنترلر های 8بیتی PIC چنانچه بخواهید از RTC و کریستال 32khz استفاده کنید نمیتونید زمان دقیق یک ثانیه رو بدست بیارید. با توجه به ضریب پیش تقسیم کننده در تایمر 1 شما میتونید زمان 2 ثانیه رو داشته باشید. یک راه برای ایجاد زمان یک ثانیه اینه که از وقفه استفاده کنید و در زمان وقفه سرریز تایمر بیت 15 تایمر 1 رو ست کنید. که البته با توجه اینکه در اثر این کار شمارنده مربوط به واحد پیش تقسیم کننده ریست خواهد شد مقداری خطا ایجاد خواهید داشت.
    ضمنا در قسمتی از برنامتون تایمر 1 رو به صورت زیر پیکره بندی کردید:
    کد:
    setup_timer_1(t1_internal|t1_div_by_4);
    بنده با CCS کار نمیکنم و به دستوراتش خیلی وارد نیستم ، ولی ظاهرا کلاک تایمر از کلاک CPU تامین میشه. باید کلاک رو روی اسیلاتور 32K تنظیم کنید. همچنین با تقسیم کلاک بر 4 و با فرض استفاده از اسیلاتور 32Khz مقدار زمان شما 8 ثانیه خواهد بود نه 1 ثانیه.
  5. #5
    2013/06/19
    1,544
    80

    پاسخ : بدست آوردن زمان دقيق 1 ثانيه

    نقل قول نوشته اصلی توسط sinaitg
    سلام
    از اساتيد اگه کسي برنامه نمونه واسم بذاره دعاشون ميکنم ..
    ممنون :angry: :angry: :angry: :angry:
    با هر کريستالي ..با هر تايمري ..
    فقط کمکم کنين
    همونطور که گفتن نميشه زمان دقيق 1 ثانيه رو با خود ميکرو بدست آورد
    اما من همون کاري رو که گفتم کردم و درست شد
    AYRIC
  6. #6
    2008/10/10
    اصفهان
    67
    1

    پاسخ : بدست آوردن زمان دقيق 1 ثانيه

    سلام .

    برنامه ي زير رو نوشتم. تست کنيد زمان 1ثانيه رو ميده. بايد ببخشيد من فرصت نکردم که تست کنم ولي سعي ميکنم که خودم هم تست کنم.
    اگر جاييوشو متوجه نشديد توضيح ميدم.
    کد:
    /* 
     * File:  TIMER1_RTC.c
     * Author: SAEED RAZAZZADEH
     *
     * Created on June 21, 2014, 6:19 PM
     */
    
    #define _XTAL_FREQ 8000000
    #include<pic16f877a.h>
    #include<xc.h>
    
    //================================
    // CONFIG
    #pragma config FOSC = HS    // Oscillator Selection bits (HS oscillator)
    #pragma config WDTE = OFF    // Watchdog Timer Enable bit (WDT disabled)
    #pragma config PWRTE = OFF   // Power-up Timer Enable bit (PWRT disabled)
    #pragma config BOREN = OFF   // Brown-out Reset Enable bit (BOR disabled)
    #pragma config LVP = OFF    // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
    #pragma config CPD = OFF    // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)
    #pragma config WRT = OFF    // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)
    #pragma config CP = OFF     // Flash Program Memory Code Protection bit (Code protection off)
    
    
    //================================
    void pic_init(void);
    void interrupt tmr1(void);
    //=================================
    void main(void) {
    
      pic_init();
      
      while(1){
      }
    
    
    }
    
    void pic_init(void){
    
      TRISBbits.TRISB5=0;//set out put
    
      INTCONbits.PEIE=1;
      INTCONbits.GIE=1;
    
      T1CONbits.T1CKPS1=0;
      T1CONbits.T1CKPS0=0;//prescaler 1:1
    
      T1CONbits.T1OSCEN=1;//enable osc timer1
      T1CONbits.T1SYNC=1;//Do not synchronize external clock input
      T1CONbits.TMR1CS=1;//select external clcok for timer1
    
      PIR1bits.TMR1IF=0;
      PIE1bits.TMR1IE=1;//enable timer1 intterupt
      TMR1=32767;//655535-32768
    
      T1CONbits.TMR1ON=1;//start timer1
    
    
    }
    //=============================================
    
    void interrupt tmr1(void){
    
      PORTBbits.RB5=~PORTBbits.RB5;
      PIR1bits.TMR1IF=0;
      TMR1=32767;//655535-32768
    }
    در زندگيت به کسي اعتــــماد کن که به او ايمــــان داري نه احســاس . . .

    چه بسيار انسان ها ديدم تنشان لباس نبود؛و چه بسيار لباس ها ديدم که انساني درونش نبود ...!
  7. #7
    2013/04/17
    تهران
    786
    32

    پاسخ : بدست آوردن زمان دقیق 1 ثانیه

    سلام
    مرسی بابت همکاریتون
    این با چه کامپایلری نوشته شده ؟؟
    تیم کاوش در مسابقات بین المللی ایران اپن 2016.نمایشی.مین یاب.
    علم را باید در آزمایشگاه یاد گرفت نه در دانشگاه!
  8. #8
    2006/08/16
    867
    17

    پاسخ : بدست آوردن زمان دقیق 1 ثانیه

    دوستان راهنمایی های خوبی کردن. من هم دوتا نکته بگم.

    به جای T1_INTERNAL از T1_EXTERNAL استفاده کنید.
    ظاهراً توی پروتیوس کریستال درست شبیه سازی نمیشه. بجاش از منبع پالس استفاده کردم و جواب داد. زمان 2 ثانیه. البته با T1_DIV_BY_1.
    به جای Float از int8 و int16 استفاده کنید. اینجوری سریعتره.
    کد:
    #include <16f877A.h>
    #use delay(clock=20000000)
    #fuses hs
    #define LCD_ENABLE_PIN PIN_D1
    #define LCD_RS_PIN PIN_D2
    #define LCD_RW_PIN PIN_D3
    #define LCD_DATA4 PIN_D4
    #define LCD_DATA5 PIN_D5
    #define LCD_DATA6 PIN_D6
    #define LCD_DATA7 PIN_D7
    int8 a=0;
    int16 d=0;
    #include <lcd.c>
    #int_timer1
    void timer1_isr(void){
    a++;
    }
    
    void main()
    {
    enable_interrupts(int_timer1);
    enable_interrupts(global);
    setup_timer_1(T1_EXTERNAL|t1_div_by_1);   //T1_EXTERNAL_SYNC
    lcd_init();
    
    while(TRUE)
    {
     d=get_timer1();
     lcd_gotoxy(1,1);
     printf(lcd_putc,"%u",a);
     lcd_gotoxy(1,2);
     printf(lcd_putc,"%lu",d);
    }
    }

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  9. #9
    2013/04/17
    تهران
    786
    32

    پاسخ : بدست آوردن زمان دقیق 1 ثانیه

    سلام
    ببخشید من با منبع پالس تست کردم .. شمردن تایمر جواب میده ولی وقفه سرریزش عمل نمیکنه..
    میشه شبیه ساز پروتیوسش رو هم بذارین؟؟
    ممنون میشم..
    تیم کاوش در مسابقات بین المللی ایران اپن 2016.نمایشی.مین یاب.
    علم را باید در آزمایشگاه یاد گرفت نه در دانشگاه!
  10. #10
    2008/10/10
    اصفهان
    67
    1

    پاسخ : بدست آوردن زمان دقيق 1 ثانيه

    سلام. با کامپايلر xc8 نوشته شده.
    در زندگيت به کسي اعتــــماد کن که به او ايمــــان داري نه احســاس . . .

    چه بسيار انسان ها ديدم تنشان لباس نبود؛و چه بسيار لباس ها ديدم که انساني درونش نبود ...!
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 11

موضوعات مشابه

  1. بدست آوردن هدر يک عکس
    توسط safiabadi در انجمن پردازش تصوير
    پاسخ: 1
    آخرين نوشته: 2014/11/09, 23:04
  2. بدست آوردن اندوکتانس سلف؟
    توسط hoseyni emeni در انجمن مدارهای آنالوگ و مدارهای مجتمع
    پاسخ: 5
    آخرين نوشته: 2014/08/22, 20:22
  3. پاسخ: 2
    آخرين نوشته: 2012/10/15, 23:48
  4. بدست آوردن فركانس با ADC
    توسط Navid_Micro در انجمن میکروکنترلرهای AVR
    پاسخ: 27
    آخرين نوشته: 2012/07/14, 11:39
  5. پاسخ: 14
    آخرين نوشته: 2010/02/05, 01:14

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •