21.12.2013 Views

Maskinnära programmering 6B2266

Maskinnära programmering 6B2266

Maskinnära programmering 6B2266

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

PIC16F874<br />

Blinkfrekvensen styrs av potentiometern<br />

/* ADtest.c testprogram for 16f874 */<br />

/* Blinkfrequency at RD0 varies with voltage on AN0 */<br />

#include "16f874.h"<br />

#pragma config |= 0x3ff2<br />

#pragma bit out @ PORTD.0<br />

void main(void)<br />

{<br />

char i, j, answer, blinktime;<br />

TRISD.0 = 0; /* lightdiode at RD0 is output */<br />

out = 1;<br />

/* AD Setup. Se help Script! */<br />

/* "fosc/8"."AN0"."go=0"."-"."on" */<br />

ADCON0 = 0b01.000.0.0.1;<br />

/* "leftjust"."fosc/8"."--"."internal ref, Vref+=Vcc, Vref-=Vss" */<br />

ADCON1 = 0b0.1.00.1110;<br />

TRISA.0 = 1; /* AN0 is input */<br />

while(1)<br />

{<br />

char i = 3; do ; while ( --i 0); /* wait tACQ */<br />

GO=1; /* start AD */<br />

while(GO); /* wait for done */<br />

blinktime = ADRESH; /* read result 8 msb */<br />

/* double loop i,j generates blinkfrequency */<br />

for( i=0;i < blinktime; i++)<br />

{<br />

for( j=0;j < 250; j++);<br />

}<br />

/* toggle lightdiode on/off */<br />

out = ! out;<br />

}<br />

}<br />

51

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!