Generatorul de semnale de frecvență variabilă

cu un pas de 5Hz este destul de realist.
ia 16F873A. Oscilator la 20MHz
configurați CCP1 pentru comparație.
compunem tabelul de frecvență cu formula
N = 5 * 10 ^ 6 / (2 * Fout)






cele pentru 1kHz N = 2500 în registrul de comparație scrie = 2500, în contorul de depășire TMR1 write = 0
pentru 10Hz N = 250.000 în registrul comparativ scrie = 53392, în contorul de depășire TMR1 write = 3
prin întreruperea de la CCP1 comparăm contorul cu numărul de deversări TMR1 dacă coincide cu inversarea codului PIN
Prin întreruperea TMR1, numărăm numărul de deversări.

dar de unde a venit de la? 53392.
Ei bine, 2500 la 1 kHz este de înțeles.

O opțiune interesantă, dar am realizat deja că 873 aici este greu de potrivită, pentru că în cazul în care pentru el această masă este apoi blocat - de la el în cazul în care foaia de date este de numai 256 de octeți de memorie flash.

Acesta este în 876, iar în 873 - cât îmi amintesc 128, dar acesta este un EEPROM de date, de ce ar trebui să stochez masa acolo?
Și are 4K memorie flash. Deși este nevoie de tabelul pentru generarea de meandre - nu este foarte clar, este necesar pentru sinusoidul DDS.

Puteți utiliza PWM pentru a genera.
În general, frecvențele necesare sunt scăzute, aici și programat pe orice temporizator timp de 5 minute - timerul este încărcat la etajul perioadei, în întreruperea dvs. rescrieți cronometrul și faceți de exemplu PA0 ^ = 1; sau orice alt picior, și obțineți un meander clar, cu o precizie de câteva baruri.
Frecvența este modificată prin schimbarea constantă a suprascrierii cronometrului (și, dacă este necesar, a divizorului).







precum și conversia valorii de frecvență pentru ieșire la indicator.

Conte, e un microprocesor! Mai mult, pentru indicație, acest lucru nu se poate face foarte repede.
Dacă funcționează 873 pe 20MHz, atunci ceasul are 0,2μs.
Știind constanta suprascriere a temporizatorului (K), știi jumătatea perioadei t = K * 0.2us.
Perioada T = 2t, frecvența F = 1 / T = 1 / (2 * K * 0.2us) = 25 * 10 ^ 4 / K - și obțineți frecvența în Hertz, dacă nu mizerie în grade.

Acesta este în 876, iar în 873 - cât îmi amintesc 128, dar acesta este un EEPROM de date, de ce ar trebui să stochez masa acolo?
Și are 4K memorie flash. Deși este nevoie de tabelul pentru generarea de meandre - nu este foarte clar, este necesar pentru sinusoidul DDS.

Puteți utiliza PWM pentru a genera.
În general, frecvențele necesare sunt scăzute, aici și programat pe orice temporizator timp de 5 minute - timerul este încărcat la etajul perioadei, în întreruperea dvs. rescrieți cronometrul și faceți de exemplu PA0 ^ = 1; sau orice alt picior, și obțineți un meander clar, cu o precizie de câteva baruri.
Frecvența este modificată prin schimbarea constantă a suprascrierii cronometrului (și, dacă este necesar, a divizorului).

Conte, e un microprocesor! Mai mult, pentru indicație, acest lucru nu se poate face foarte repede.
Dacă funcționează 873 la 20MHz, atunci ceasul are 0,2μs.
Știind constanta suprascriere a temporizatorului (K), știi jumătatea perioadei t = K * 0.2us.
Perioada T = 2t, frecvența F = 1 / T = 1 / (2 * K * 0.2us) = 25 * 10 ^ 4 / K - și obțineți frecvența în Hertz, dacă nu mizerie în grade.

Fuhhh. M-am îngrijorat că ceva nu face nimic cu această problemă.
Nu voi separa muștele de tăițe. Pe scurt, pe cronometrele standard, în general se obține întunericul, care este un fel de nelinearitate, tabelele de conversie fiind mai scurte în cuptor, similar cu această opțiune.
Pe controlerul cu modulul NCO, totul pare mult mai frumos, deși nu totul este clar încă.
Ei bine, așa este ... pentru o secundă. În lumea reală a acestei pietre nu se găsește, până acum teoretizam.

Adevărul generatorului de ceas de 4MHz cu codul dat este un maxim de 486 Hz. - dar un pas de aproximativ 2 hertzi. pentru a obține mai mult, este necesar să se incrementeze incremental NCO1INCH programabil.







Articole similare

Trimiteți-le prietenilor: