1.25kHz 50% duty cycle golf uit een PIC12F508

M

max0412

Guest
Dit is waarschijnlijk Grappig eenvoudig, maar ik ben net beginnen met PIC's.Dus wees soort.

Is het mogelijk om een 1.25kHz 50% duty cycle golf uit een PIC12F508 genereren.Ik kom heel voorbeelden waar zij gebruik maken van een NOP voor 1uS intervallen hier.

Code:pROCESSOR 12F508

# include "p12f508.inc"

__CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF & _XT_OSC

# Define PORT B'11111101 '

MOVF OSCCAL

MOVLW PORT

TRIS GPIOBEGIN

BCF GPIO, 1; 1uS

NOP; 2US elke NOP is 1uS lang

NOP; 3uS

NOP; 4US

NOP; 5uS

NOP; 6uS

NOP; 7uS

NOP; 8uS

NOP; 9Us

NOP; 10US

NOP; 11uS

NOP; 12US

NOP; 13uS

NOP; 14uS

NOP; 15uS

NOP; 16uS

NOP; 17uS

NOP; 18uS

NOP; 19uS

BSF GPIO, 1; 1uS Begin HOGE duty cycle

NOP; 2US

NOP; 3uS

NOP; 4US

NOP; 5uS

GOTO BEGIN; 2US (26uS totaal voor 38kHz)

END

 
U kunt macro-taal om te vragen MPASM te doen.Code:

Radix december# define fOSC 4000000_waveC macro freq, plicht, niveau

variabele tduty0, tduty1, tduty

tduty0 = (fOSC / 4) / Freq

tduty1 = (tduty0 * recht) / 100

tduty0 -= tduty1

indien niveau

tduty = tduty1

anders

tduty = tduty0

endif

indien tduty! = 0

if (tduty & 1)! = 0

NOP

endif

tduty / = 2

terwijl tduty! = 0

GOTO 1 dollar

tduty -= 1

endw

endif

endm
 
U kunt ook TMR0 gebruiken met een prescaler van bijvoorbeeld 1:4 en elke keer dat rolt opnieuw laden met 156 (aanpassen van deze waarde).Op die manier zal TMR0 rollen over alle 400us, dat is de helft van de gewenste periode.Als het is, schakelt u de GPIO bits voor de output.

 
Bedankt voor de hulp.

Ik heb de PIC DV164121 Development Tool en ik ben doormodderen mijn weg door de tutorials.

Ik ben een bestelling deze week, nu ik weet dat het mogelijk om de 12F508 gebruik ik om een paar.

Kan iedereen aanbevelen een aantal goede algemene doeleinden PIC's voor het leren van de basics?De raad DV164121 kwam met PIC16F887.Wat zijn de meest gebruikte?

Bedankt

 
Zo veel als ik weet, de meest gebruikte daarvan zijn PIC12F508, PIC18F452 en PIC16F877A.
Maar PIC16F887 is een goede vervanger voor PIC16F877A!In principe is bijna hetzelfde als PIC16F877A maar het omvat interne oscillator en heeft enkele kleine verschillen in de wijze waarop de randapparatuur gebruiken.

 
Ik zou zeggen dat de 16F877 (A) is de meest gebruikte is.De 16F887 heeft enkele leuke features in vergelijking met de 16F877, zoals onafhankelijk instelbare analoge ingangen en zwakke pullups, maar het ontbreekt slaaf de parallelle poort.Als dat belangrijk is, ga met de 877.

 

Welcome to EDABoard.com

Sponsor

Back
Top