Βοήθεια στη χρήση Timer0 σε 16f877

C

crowinu

Guest
Γεια σας παιδιά,

Κάνω ένα πρόγραμμα για τα μαθήματά μου (ΣΜΕ ελεγχόμενη dimmer) και θ ανάγκη να χρησιμοποιήσει το timer0, ορισμένοι τύποι εξηγείται κάτι, αλλά εγώ didnt αποκτώ την ιδέα για το πώς να το χρησιμοποιήσει.Χρειάζομαι βοήθεια όσον αφορά τη χρήση timer0 αν guys u iwsh να με βοηθήσει.άλλο πράγμα εγώ είμαι χρησιμοποιώνταs γλώσσα συναρμολόγηση δεν γ

<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Ουδέτερη" border="0" />

, Υποθέτω ότι καθιστά πιο συναντάται συχνά.Θέλω να κάνω κάτι σαν αυτό, κάθε ένας 1s smal ρουτίνα ονομάζεται.
10x για οποιαδήποτε βοήθεια

crowinu.

 
Ακούγεται σαν χρειάζεστε για να διαβάσετε το φύλλο δεδομένων.Είναι διαθέσιμο σε http://ww1.microchip.com/downloads/en/DeviceDoc/30292c.pdf.Διαβάστε την ενότητα για TIMER0 και για Διακόπτει (υπό ειδική λειτουργία της CPU).

Δεν ξέρω ποιες είναι οι απαιτήσεις του έργου σας και δεν έχω αρκετές πληροφορίες για να απαντήσει περαιτέρω.

 
Απαιτήσεις δεν είναι με βάση τον προγραμματισμό αφού πορεία μου επικεντρώνεται στους τομείς της ηλεκτρονικής, έτσι είναι το κύκλωμα πιο σημαντικό, αλλά για να πάρει το κύκλωμα να εργαστούν θ needthw γράψετε κωδικοποίησης.Διάβασα το δελτίο και Wast ότι helpfl για μένα, χρειάζομαι μερικές παράδειγμα κώδικα.Πρέπει να χρησιμοποιήσετε το χρονόμετρο 0 για να επαναλάβει μια ρουτίνα κάθε 1 δευτερόλεπτο και μου είπαν να μην το χρησιμοποιούν timer0 καθυστερήσεις.Είμαι αρχάριος στο χρονόμετρα Δεν ξέρω τίποτα.u αν μου δώσετε κάποια βοήθεια που θα βοηθήσει πολύ

<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Ουδέτερη" border="0" />

.

10x 4 τώρα

 
Κωδικός:
# define CRYSTAL 4194304ΕΠΕΞΕΡΓΑΣΤΗΣ PIC16F877

ΤΙΤΛΟΣ "TMR0"

ΠΕΡΙΛΑΜΒΑΝΕΤΑΙ "P16F877.INC"

LIST p = 16F877, r = Δεκέμβριος

__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC & _BODEN_OFF & _LVP_OFF

ERRORLEVEL -302, -305, -306
RESET_V EQU 0x0000CBLOCK 0x20

tmr0count

ENDCORG RESET_V

STATUS clrf

clrf INTCON

init goto? * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

βασικά:

WaitTmr0Overflow:

btfss INTCON, T0IF

goto WaitTmr0Overflow

BCF INTCON, T0IF

? Εδώ έχουμε 0,0625 καθυστέρηση δευτερολέπτων

tmr0count decfsz, F

goto WaitTmr0Overflow

movlw 16

movwf tmr0count

? Εδώ WA έχουν 1 δευτερόλεπτο καθυστέρηση

κλήση UserSubroutineEvery1Secondgoto κύριαUserSubroutineEvery1Second:

?

? Κάποιοι κωδικός

?

επιστροφή? * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Init: PIR1 clrf

clrf PIR2

clrf ΠΟΡΤΑ

clrf PORTB

clrf PORTC

clrf T1CON

clrf T2CON

clrf SSPCON

clrf CCP1CON

clrf ADCON0

BSF _RP0? bank1

clrf PIE1

clrf PIE2

movlw 0x06

movwf ADCON1? Set ΠΟΡΤΑ ψηφιακή

B'11010000 movlw '

movwf TRISA

movlw B'11111011 »

movwf TRISB

movlw B'11011000 »

movwf TRISC

? Καθυστέρηση TMR0:

? 4 / 4194304 = 9.5367431E-07

? TMR0 PRESCALER 1:256

? Καθυστέρηση = 256 * 256 * 9.5367431E-07 = 0,0625 δευτερόλεπτα

? Αν tmr0count είναι 16, τότε συνολική καθυστέρηση είναι: 16 * 0,0625 = 1 δευτερόλεπτο

0x07 movlw? 1:256, pull-up ενεργοποιημένη

movwf OPTION_REG? 1:256 TMR0 PRESCALER

BCF _RP0? bank0

movlw 16

movwf tmr0count

clrf TMR0

BCF INTCON, T0IF

BCF INTCON, T0IE

goto κύριαΤΕΛΟΣ
 
10x pirev, ήταν πολύ βοηθήσει την πλήρη

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Χαμόγελο" border="0" />

.10x πολύ και πάλι.Θα κάνω κάτι.

 

Welcome to EDABoard.com

Sponsor

Back
Top