Documente Academic
Documente Profesional
Documente Cultură
MICROCONTROLERE LABORATOR 4
Scopul lucrrii
Putem faca modificari fine ale frecventei de tast si putem actica/dezactiva bucla PLL prin
intermediul registrului de configurare OSCTUNE
Bucla PLL poate fi activata atunci cand frecventa de baza a oscilatorului intern este de 8MHz sau
de 16MHz. Activarea buclei PLL are drept efect multiplicarea cu 4 a frecventei oscilatorului,
obtinndu-se frecvente de lucru de 32MHz i respectiv 64MHz.
INTRC este un generator de tact de 31KHz i este utilizat i pentru operarea unor periferice i
funcii ale microcontrolerului, cum ar fi watchdog-ul.
Daca dorim operarea microcontrolerului la o frecventa de 31KHz putem alege ca sursa de tact
INTOSC, ce are avantajul de a fi calibrat , sau INTRC, ce ofera un consum de energie redus
Prin setarea corespunzatoare a registrilor de configurare putem alege intre 10 frecvene de tact
Daca dorim operarea microcontrolerului la o frecventa de 31KHz putem alege ca sursa de tact
INTOSC, ce are avantajul de a fi calibrat , sau INTRC, ce ofera un consum de energie redus
Putem schimba frecventa de tact in timpul rularii unui program, astfel incat sa beneficiem de
putere de calcul maxima atunci cand este nevoie, ca apoi sa reducem frecventa de tact pentru un
consum redus de energie
Daca dorim operarea microcontrolerului la o frecventa de 31KHz putem alege ca sursa de tact
INTOSC, ce are avantajul de a fi calibrat , sau INTRC, ce ofera un consum de energie redus
Biii SCS1:0 permit schimbarea sursei de tact n timpul rulrii unui program. n lucrarea noastr
vor fi setati la valoarea 00
Desfsurarea lucrrii
Reluati codul 02_blink_LED.c de la laboratorul 1
Desfsurarea lucrrii
Reluati codul 02_blink_LED.c de la laboratorul 1
TRISD = 0b01111111; // PORTD bit 7 to output (0) ; bits 6:0 are inputs (1)
while (1)
OSCCON=0x40;
TRISD = 0b01111111; // PORTD bit 7 to output (0) ; bits 6:0 are inputs (1)
while (1)
Exercitiu 2
Modificai codul surs precedent pentru a seta oscilatorul intern la 500 KHz
Exercitiu 2
Modificai codul surs precedent pentru a seta oscilatorul intern la 500 KHz
IRCF = 010
OSCCON=0x20;
TRISD = 0b01111111; // PORTD bit 7 to output (0) ; bits 6:0 are inputs (1)
while (1)
Exercitiul 3
Scrieti un program pentru microcontrolerul PIC18F45K20 care sa realizeze
urmatoarele:
Exercitiul 3
Pornim de la codul sursa al aplicatiei 04_Switch_input.c
Exercitiul 3
Pornim de la codul sursa al aplicatiei 02_blink_LED.c
Exercitiul 3
Exercitiul 3
Codul sursa initial bucla while(1)
while (1)
{
LATDbits.LATD7 = ~LATDbits.LATD7; // toggle LATD
Delay1KTCYx(50); // Delay 50 x 1000 = 50,000 cycles; 200ms @ 1MHz
}
while (1)
{
LATDbits.LATD7 = ~LATDbits.LATD7; // toggle LATD
Delay1KTCYx(50); // Delay 50 x 1000 = 50,000 cycles; 200ms @ 1MHz
if (PORTBbits.RB0==0) //butonul apasat
OSCCON=0x20;
else //daca nu e apasat atunci e liber
OSCCON=0x40;
}
NTREBRI