Har ett litet projekt under uppbyggnad då jag vill mäta bredden (duty %) på pulser... Alltså 0-100% pulsbredd.
Detta ska göras med en pic 18f452 processor. Min ide var att koppla på rb0/int0 att trigga på positiv flank och sen rb1/int1 att trigga på negativ flank. Sedan koppla ihop dessa två ingångar till källan.
Sen med hjälp av en räknare spara timer värden vid positiv flank och sen negativ flank och sen vid nästa positiv flank så subtrahera och räkna ut bredden.
Är min ide att gå över ån efter vatten? Om nån har någon annan smart ide så är jag tacksam för ideer.
Vilken frekvens handlar det om och med vilken nogrannhet måste du mäta? En väldigt enkel variant är ju att ta t.ex. 10000 sample, räkna antalet höga, dividera med 100 och du har duty-cykeln i procent. Detta förutsatt att frekvensen du mäter är relativt låg och att ett mindre mätfel inte gör något.
OM du använder interrupt-ingång så bör det räcka med EN ingång som du ställer om vid varje "mottagning":
1. Ställ om till positiv flanktrigg
2. Vänta på flank
3. Nollställ räknare
4. Ställ om till negativ flanktrigg.
5. Vänta på flank
6. Spara undan räknarvärde A
7. Ställ om till positiv flanktrigg
8. Vänta på flank
9. Spara undan räknarvärde B (Duty = A / B)
10. GOTO "3"...
Frekvensen är varierande mellan 10 och 200hz. Men nogranheten är inte högre än heltal 0-100%.
Hade ju varit enkelt om frenvensen varit konstant. Då hade ju OJSAN's första idee varit skitenkel.
Men den andra ideen med att ändra vilken flank den triggar på funkar ju. Samt att jag inte behöver använda 2 olika interrupter med 2 olika ben. Kanon! Med den här lösningen så kan man ju samtidigt räkna ut frekvensen när man har alla värden.
Bra, ett steg avklarat. Nästa fråga: Hur ofta måste du uppdatera värdet?
Problemet med sampling är ju att du kan råka sampla t.ex. 10,5 perioder och där igenom få ett felaktigt resultat. Med lite enkla operationer skulle du dock kunna plocka bort "halva vågor" i början och slutet av samplingen och på så sätt få ett rätt bra resultat.
Men om du föredrar flanktriggning så är det ju helt klart snyggare och kräver mindre resurser.