Man kan tenke seg at programvaren har flere ulike tilstander:

process patrinn_logic
inrush_protection = on;
fan = full;
relay = rx;
start_timer;
repeat forever
begin
while machine = start
begin
if 0.5_seconds_finished then machine = receive;
end;
fan = low;
relay = rx;
while machine = receive
begin
if ptt = on then machine = transmit;
end;
fan = high;
relay = tx;
while machine = transmit
begin
if ptt = off then machine = hot_receive;
end;
fan = high;
relay = rx;
while machine = hot_receive
begin
if 5_seconds_finished then machine = receive;
if ptt = on then machine = transmit;
end;
end;
Som kjent er det mange måter å kverke en katt på. Dette er altså en måte å kjøre prosessen på. Man kan også tenke seg andre måter over samme tema. F.eks med interrupter.
For timingen bruker jeg et interrupt i prosessoren. Det er en hendelse som kommer med et fast intervall. Denne starter opp en liten programsnutt.
Jeg har sjekket databladet for PIC16c84. Max klokkefrekvens er 10 MHz. Med et timer oppsett jeg har stjålet fra nettet finner jeg at mellom to oppkall av timerrutinen er det 0,102 m sec og det utføres 255 instruksjoner. Det betyr at man kan styre switch mode PSU'en med en frekvens på halvparten av 9,8 kHz, dvs 4,9 kHz.
Tilbake til samleside om PA-prosjektet: HER
Comments, ideas or some wisdom? please mail me at
This page has been created in a text editor by a real programmer.