Wenn du deinen µC in den Pausen nicht schlafen schickst und in der
Main() ausser einer Warteschleife sonst nichts steht, könntest du es
vielleicht mal damit versuchen:
In der Main() einen Endlosloop mit folgendem Inhalt einbauen:
1 | DDRB |= 1<<PB0; // PB0 als Ausgang setzen
|
2 | PORTB |= 1<<PB0; // PB0 auf definierten Wert (High) setzen
|
3 |
|
4 | while(1)
|
5 | {
|
6 | cli(); // Interrupts disablen
|
7 | PORTB ^= 1<<PB0; // Portpin auf 0 setzen
|
8 | PORTB ^= 1<<PB0; // Portpin auf 1 setzen
|
9 | sei(); // Interrupts enablen
|
10 | };
|
Damit erhältst du an PB0 ein PWM-Signal, dessen Tastverhältnis durch die
abzuarbeitenden Interrupts moduliert wird. An diesem Portpin kann nun
ein Tiefpassfilter (RC-Glied) angeschlossen werden um dann eine analoge
Spannung zu erhalten. Diese Spannung kann bequem mit einem Multimeter
gemessen werden.
Nachteile dieser Methode wären:
- der Spannungsverlauf ist nicht proportional zur Prozessorauslastung
- bei 0% Prozessorauslastung beträgt die analoge Spannung nicht 0V
( --> Offsetspannung; kann aber zur Not experimentell ermittelt
werden)
Gruß,
Magnetus