Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Jak wygenerować impulsy w przerwaniach?

seg 29 Cze 2011 22:50 1128 2
  • #1 29 Cze 2011 22:50
    seg
    Poziom 12  

    Muszę napisać program za pomocą którego PIC18F1320 wygeneruje (generacja w pętli z f = 1kHz) trzy impulsy prostokątne na trzech różnych pinach. Całość musi odbywać się niezależnie od programu głównego (w przerwaniach), tak, aby można było jednocześnie wyświetlać różne informacje na LCD. Program powinien wyglądać tak:

    - Wygenerowanie impulsu 50us na pinie X
    - Przerwa 300uS
    - Wygenerowanie impulsu 50us na pinie Y
    - Przerwa 100uS
    - Wygenerowanie impulsu 50us na pinie Z
    - Przerwa do końca okresu = 1ms (czyli f = 1kHz) i tu powrót na początek przerwania w celu ponownego wygenerowania sekwencji impulsów, itd.

    Czy macie jakieś propozycje rozwiązania tego problemu? Czy da się to zrobić na timerach (dostępny jest jeden 8 bit i trzy 16 bit) w trybie Compare? Proszę o wskazówki jak tego dokonać, aby jednocześnie na LCD wyświetlać dane. Bardzo pożądana jest możliwość zmiany w pętli głównej czasów trwania impulsów i przerw między nimi. Nie oczekuję napisania za mnie gotowego programu, tylko pomocy w odnalezieniu metody na jego napisanie - wskazówek czego powinienem użyć, czym się zainteresować, w jakim trybie itd.
    Proszę więc o pomoc.

    0 2
  • #2 30 Cze 2011 00:04
    94075
    Użytkownik usunął konto  
  • #3 30 Cze 2011 20:46
    seg
    Poziom 12  

    Nie rozumiem jak i kiedy mam ładować te wartości - prosiłbym o jakiś przykład. Czy mógłbyś to rozpisać (tak jak ja w pierwszym poście), zarówno dla timera jak i rejestru compare? Nie wiem jak z czasami tego ładowania ponieważ generowane impulsy są rzędu mikrosekund. Nie zaburzy mi to zależności czasowych? Czy ktoś z Was robił podobne rzeczy w picbasic, ew. w innym języku i np AVR'ach? Czy timer 8 bit wystarczy?

    0