PIC megszakítás...

PIC megszakítás...
2004-08-26T14:46:51+02:00
2006-03-18T22:23:41+01:00
2022-10-31T08:35:39+01:00
  • Hello!
    Mindenféleképp interruptot javaslok.
    Mindkét USART-ra külön engedélyezhető és lekérdezhető PIRx, ill PIEx SFR-kben.

    Akár uo. prioritási szinten is.

    Szerintem megondolandó lenne egy százlábú helyetti 2 kisebb (pl 2 db 16f73) amik egymással pl. I2C-n vannak összekötve.

    80 láb helyett csak 56.


    Mutasd a teljes hozzászólást!
  • hat javaslom hogy inkabb atmel eszkozokre fejlesszel mint pic-re. (en megjartam mar ezt az utat). a pic18-as csaladjaban 2 megszakitas van: egy alacsony es egy magas prioritasu. a periferiak megszakitasai prioritasat te adhatod meg.
    ha egy megszakitas futasa kozben meg egy megszakitas keletkezik, akkor ha a prioritasa az ujnak alacsonyabb, akkor megvarja a magasabb befejezodeset, ha magasabb, akkor megszakitja az alacsonyabb futasat, ha megegyezo az attol fugg hogy mit engedsz meg.

    a programozastechnikai kerdesedre csak azt tudom mondani, hogyha megszakad az adas nem lesz erthetetlen a vevo szamara, mivel a bajt adasa nem szakad felbe, mert az pufferbol megy es celhw hajtja vegre, csak ket egymast koveto bajt kozott lesz egy kis szunet, de ez egy normalis rendszernel nem lehet problema.
    Mutasd a teljes hozzászólást!
  • Szia.

    Az első amit tenned kell és legfontosabb dolog a pic-hez mellékelt dokumentáció alapos áttanulmányozása, melyet microchip oldaláról le tudsz tölteni.

    Eddig pályafutásom során olyan PIC kontrollerrel találkoztam, mely csak 1 megszakítást tud kezelni, ha a megszakítási rutin közben érkezik újabb megszakítás csak akkor fog a programszámláló a 0x4-es memóriacímre ugrani, ha a folyamatban lévő rutin végzett.

    Sajnos az általad említett PIC típust nem ismerem és nem tudom van-e benne hardveres UART mert az jelentősen megkönnyítené a dolgot. Az egész karakter-byte és paritásbit küldést
    hardveresen kezeli, neked csak az adat megérkezését és továbbítását kell érzékelned megszakítással (ajánlott) vagy pollinggal.

    Egyenlőre ennyit tudok mondani.

    Remélem segítségedre lehettem!

    Jó munkát, szia!
    Mutasd a teljes hozzászólást!
  • http://forum.chipcad.hu/
    Mutasd a teljes hozzászólást!
  • Sziaszotok

    Egy protokollfordítót fejlesztek PIC18f8621-es procira. Ennek van két soros portja, ezen menne a kommunikáció.
    Dióhéjban: annyit csinál, hogy az egyik portján fogad adatot, eltárolja, a másik porton meg ezekből az eltárol adatokból "kérdez" egy eszköz, amire válaszolni kell.
    A kérdés: Milyen megszakításokkal csináljam meg?
    Assembly-ben lehet alapból programozni, de van C fordító is.
    Amit nem tudok az az, hogy ha jön adat vmelyik portra, akkor az egy megszakítást generál (sztem így érdemes lekérdezni és nem ciklusonként,mert csak 2 byte mély buffere van). Elkezdi végrehajtani a megszaítás rutint... mi van akkor,ha közben a másik porton is érkezik adat?(nincs az INTnak prioritása) Sorban áll, amíg a másik INT be nem fejeződik ?
    A másik kérdésem inkáb programozástechnika, mivel kezdő vagyok... Ha a második portra bejön egy teljes kérés(7 byte fixen), akkor arra válaszolni kell attól függően ,hogy mi a kérés és hogy milyen adatok vannak tárolva. Ha elkezdem küldeni a válast rá és közben jön megszakítás, akkor kis ideid abbamarad a küldés, ami pont arra elég, hogy a fogadó eszköz ne értse, hogy mit akarok küldeni. Ha viszont kikapcsolom erre az időre a INTokat, akkor bejövő adat veszhet el...
    Biztos triviális a megoldás, de én nem vágom...
    Előre is köszi a segítséget

    -amano-
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd