PIC: Två saker samtidigt?
PIC: Två saker samtidigt?
Hej,
någon som har en aning om hur man ska göra för att kunna göra två saker samtidigt på en PIC? Det är en 16f874a det gäller. det jag ska göra är att styra två rc-servon samtidigt, men hur ska jag lyckas med det? Har hört att det ska vara krångligt att göra två saker samtidigt på en PIC...
Tack på förhand!
någon som har en aning om hur man ska göra för att kunna göra två saker samtidigt på en PIC? Det är en 16f874a det gäller. det jag ska göra är att styra två rc-servon samtidigt, men hur ska jag lyckas med det? Har hört att det ska vara krångligt att göra två saker samtidigt på en PIC...
Tack på förhand!
Du kan inte göra två saker samtidigt. dock kan man göra så att det ser ut som man gör två saker samtidigt. Man kan anvädar trådar men efter som pic har hårdvaru stack så är det svårt att göra desutom är det inte så mines effektivt.
Ett annat sätt är att låta en "process" köra i en interupt rutin och den andra i main loopen...
Men vad är det du vill göra? ha två olika processer eller bara styra Två servon.
om du endast vill styra kan du ge pulserna efter varandra
Ett annat sätt är att låta en "process" köra i en interupt rutin och den andra i main loopen...
Men vad är det du vill göra? ha två olika processer eller bara styra Två servon.
om du endast vill styra kan du ge pulserna efter varandra
-
- Inlägg: 2360
- Blev medlem: 16 september 2003, 17:18:13
- Ort: Dubai, United Arab Emirates
- Kontakt:
Kod för att kontrollera 8 st servon från en PIC
http://www.digitalnemesis.com/ash/proje ... servo8.htm
http://www.digitalnemesis.com/ash/proje ... servo8.htm
Kod: Markera allt
s1_out var portb.0 'Deklarera I/O
s2_out var portb.1 'Deklarera I/O
low s1_out 'Deklarera som utgång; låg
low s2_out 'Deklarera som utgång; låg
servo1 var word 'På-tid i µs
servo2 var word 'På-tid i µs
loop:
s1_out = 1 'Servo 1 puls hög
pauseus servo1 'Pausa lagom tid (1-2ms)
s1_out = 0 'Servo 1 puls låg
s2_out = 1 'Servo 1 puls hög
pauseus servo2 'Pausa lagom tid (1-2ms)
s2_out = 0 'Servo 1 puls låg
pauseus (20000 - servo1 - servo2) ' Gör om var 20:e ms
goto loop
Det där fungerar ypperligt bra! Nu ska jag bara se till så att den läser av den seriella signalen i loopen och inte före...
Hur fungerar SERIN egentligen? Står microprocessorn still när den kommer till SERIN och väntar på att det ska komma data eller hoppas den vidare om den ser att det inte kommer något?
Hur fungerar SERIN egentligen? Står microprocessorn still när den kommer till SERIN och väntar på att det ska komma data eller hoppas den vidare om den ser att det inte kommer något?