Kontroll logikk design til patrinnet


Man kan tenke seg at programvaren har flere ulike tilstander:

Figuren ve ulike tilstandene. Teksten ved pilene viser hva som får prosessen til å skifte tilstand.

Pseudo kode for softwaren

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


Click to go home.

This page has been created in a text editor by a real programmer.