21.12.2013 Views

Maskinnära programmering 6B2266

Maskinnära programmering 6B2266

Maskinnära programmering 6B2266

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Lösta programexempel med PIC16F628<br />

Varvtalsratt till<br />

LEGO-motor<br />

Pulsgivare och PWM<br />

En ratt med pulsgivare är ansluten till RB6 och RB7. I skolan ansluter vi en Legomotor<br />

mellan RB3/CCP1 (PWM-signalen) och RA1. ( Hemma får Du nöja dig med<br />

två antiparallella lysdioder vars ljusstyrka symboliserar motorns varvtal ).<br />

Pulsgivaren ska användas som varvtalsratt för legomotorn (öka/minska). Full fart<br />

uppnås när man vridit fram pulsgivaren 255 steg.<br />

Programmet måste ignorera om man vrider fram mer än 255 steg eller bakåt förbi ”0”.<br />

/* pwmspeed.c RB-int reads rotary switch and outputs pwm */<br />

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

#include "int16Cxx.h"<br />

#pragma config |= 0x3ff0<br />

char count; /* global to accumulate pulses from sensor */<br />

char trans; /* global to store transitions */<br />

#pragma bit lightdiode @ PORTA.2<br />

#pragma bit quad_A @ PORTB.6<br />

#pragma bit quad_B @ PORTB.7<br />

#define ON 1<br />

#define OFF 0<br />

40

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

Saved successfully!

Ooh no, something went wrong!