tmr0 في 16F84A

D

daniel2004

Guest
مرحبا لدي سؤال البكم ، أعتقد أنني أفتقد لشيء أساسي جدا هنا.

أنا غير قادر على الحصول على ما يبدو TMR0 إلى الزيادة في MPLAB ، وأنا لا أعتقد أنها تعمل في الموافقة المسبقة عن علم سواء.الأولى من الإعداد Option_Reg ، وT0CS مجموعة ، من أجل إيقاف جهاز ضبط الوقت.عندما أريد الموقت لحساب أنا T0CS واضحة حتى الموقت سيتم زيادة قبالة الساعة الداخلية.هذا dosnt يحدث.من قراءتي لبيانات ورقة الموقت ينبغي الزيادة في هذا الوضع مهما كانت.لقد راجعت في MPLAB أن جميع البتات تم تعيين وتطهيرها كما ينبغي ، لا يزال الحظ.آمل شخص هنا يمكن أن تلقي بعض الضوء على هذا.

شكرا
دانيال

# تعريف المعالج 16F84A

قائمة 16F84A ف = ؛ ، و = INHX8M
# تشمل <P16F84A.inc>

__config _CP_OFF & _PWRTE_OFF & _WDT_OFF & _HS_OSC؛************************************************* ***********
؛ يعادل الذاكرة
؛************************************************* ***********

W_Temp EQU 0x20
STATUS_Temp EQU 0x21
تأخير EQU 0x22

؛************************************************* ***********
؛ إعادة تعيين وموجهات المقاطعة

غزاله 0x0000 ؛ إعادة المتجهات
غوتو ابدأ

غزاله 0x0004 ؛ المقاطعة النواقل
غوتو IntVector

؛************************************************* ***********
؛ برنامج تبدأ هنا

غزاله 0x005
يبدأ
قوات حرس الحدود حالة ، RP0
MOVLW h'FF '
MOVWF TRISA
CLRF TRISB
البنك السعودي الفرنسي TRISB ، 7
البنك السعودي الفرنسي TRISB ، 6

البنك السعودي الفرنسي OPTION_REG ، T0CS ؛ Timer0 لا تعمل
البنك السعودي الفرنسي OPTION_REG ، T0SE ؛ ارتفاع الحافة
الأحيائي OPTION_REG ، دعم البرامج والإدارة ؛ استخدم tmr0 لprescaler
البنك السعودي الفرنسي OPTION_REG ، PS2 ؛ الأقصى prescaler
البنك السعودي الفرنسي OPTION_REG ، PS1
البنك السعودي الفرنسي OPTION_REG ، PS0
CLRF INTCON ؛ بداية جديدة
الأحيائي INTCON ، T0IE ؛ تمكين TMR0 المقاطعة
الأحيائي INTCON ، T0IF ؛ TMR0 بدون علم
الأحيائي حالة ، RP0 ؛ Bank0
CLRF TMR0
البنك السعودي الفرنسي INTCON ، منطقة غزة الصناعية
غوتو الرئيسية

رئيسي
؛ BTFSS بورتا ، 1
؛ غوتو الرئيسية
CLRF PORTB
البنك السعودي الفرنسي PORTB ، 0
قوات حرس الحدود حالة ، RP0
الأحيائي OPTION_REG ، T0CS ؛ TMR0 ابدأ
الأحيائي حالة ، RP0
تأخير MOVF ، ث
SUBLW d' 76 '
BTFSS حالة ، ى
غوتو أ
قوات حرس الحدود حالة ، RP0
البنك السعودي الفرنسي OPTION_REG ، T0CS ؛ إيقاف TMR0
الأحيائي حالة ، RP0
CLRF TMR0
البنك السعودي الفرنسي PORTB ، 1
؛ غوتو الرئيسية

Main_a
غوتو Main_a

IntVector
البنك السعودي الفرنسي PORTB ، 3
MOVWF W_Temp ؛ نسخ دبليو لتسجيل الحرارة
SWAPF حالة ، واط ؛ مركز مقايضة ليتم حفظها في واط
CLRF حالة ؛ البنك 0 ، بغض النظر عن البنك الحالية ، يمسح الحزب الثورى المؤسسى ، RP1 ، RP0
MOVWF STATUS_Temp ؛ لإنقاذ الوضع البنك صفر سجل STATUS_TEMP

INCF تأخير
CLRF TMR0
الأحيائي INTCON ، T0IF

SWAPF STATUS_Temp ، واط ؛ مقايضة STATUS_TEMP سجل في واط
؛ (يحدد البنك إلى حالته الأصلية)
MOVWF حالة ؛ تحريك واط في حالة تسجيل
SWAPF W_Temp ، واو ؛ مقايضة W_TEMP
SWAPF W_Temp ، واط ؛ مقايضة W_TEMP إلى دبليو
RETFIE

نهاية

 
مرحبا ،

لم أذهب من خلال التعليمات البرمجية كما هو الحال تقريبا 4 صباحا حيث أنا ،
ولكن هناك ملاحظة في ورقة البيانات 16F84A التي تقول :

"الكتابة إلى TMR0 عندما يتم prescaler
تعيين Timer0 إرادة واضحة في prescaler
العد ، ولكن لن يغير prescaler
الاحالة. "(صفحة 19)

فإنه يمكن أن يتم إعادة الفرز الخاص بك في كل وقت؟

مساء الخير...
/ رامبو

 
هاي
كما تحقق الطقس timer0 بحساب الساعة الداخلية أو الخارجية من نبض انها دبوس المدخلات.هذا هو الشيء probabile.
Picstudent

 

Welcome to EDABoard.com

Sponsor

Back
Top