Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Igen, jó. Végül is csak a RESET lábat kell, hogy felhúzza, amikor nincs programozás....
Aztán meg hagyja felmászni a Vpp potenciálját, amikor le van húzva a programozóról, és resetel össze-vissza tőle a chip. Inkább ki kéne azt a diódát hagyni és egy 10k-val húzni fel a lábat. Nagyon félősek tehetnek egy 5,5V-os zénert is a Vcc és GND közé, de totál felesleges.
Potyo leírta miért, én csak annyit írok, nem kell oda dióda.
Helló
Van valakinek kapcs rajza PIC16C56-os hoz programozója köszi.
Üdv!
Valaki tudna segíteni, hogy hogyan kell assemblyben a WAIT parancsot használni, mert az MPlab egyfolytában lehurrogja, akárhogy is írom be! Köszi!
Tudomásom szerint nincs olyan assemly utasítás, hogy WAIT.
Hmm.. Köszi! Na mindegy, pedig ebben a topicban láttam egy ilyet:
1. CALL START_CONVERT 2. BSF LED 3. WAIT D'255' 4. WAIT D'255' 5. WAIT D'255' 6. WAIT D'255' 7. BCF LED 8. CALL READ_TEMPERATURE Nézd meg, hogy ha a LED -et be ki kapcsolod a jelzett pontokon, mennyi ideig világít. 500ms-et elég jól lehet érzékelni, és inkább több időt állíts be, mint kevesebbet. Akkor marad a jó öreg DECFSZ rutin....
Ha figyelmesebben elolvasod a hozzászólást, akkor abból kiderült, hogy az egy makró: "#include "E:\Munka\forumra\modules\m_wait.asm". Plusz utána kérte is egy illető, hogy mutassa meg ezt a makrót.
Ja igen! Jogos!
Találtam egy ilyet én is a gépen, csak kicsit hosszú. Marad a normál delay rutin akkor is... Köszi a segítségeket!
Ezt már én is próbáltam, de ugyanoda teszi / próbálja tenni ahova a sima udata
![]() Viszont ASM-ben UDATA_ACS után létrehozva a változót, a C-ben meg extern-ként hivatkozva rá simán jó helyre teszi. Ez egy másik működő, de nem túl szimpatikus megoldás.
Újra itt vagyok. Icserny már próbált nekem segíteni, de még mindig ott tartok, ahol tartottam.
Mivel már régebben volt, ezért újra leírom, hátha valaki megtudja mondani, hogy mi lehet a hiba. Egy GPS-ből jövő soros adatot kellene piccel fogadnom, és bizonyos részeit továbbküldenem usb-n. Erre egy pic 18f4550-es áll a rendelkezésemre. A pic-pc közötti usb-s kapcsolat már megy. De mivel igen kezdő vagyok c-ben ezért egyszerűen nem tudom rendesen megcsinálni, hogy a soros porton fogadott adatot usb-n kiküldje. A sorosporti tulajdonságai 4800,8,1 main.c user.c A kód annyiban változott, hogy módosult az alábbi rész:
Tudna valaki segíteni ebben?
Megvan a megoldás
![]() #pragma udata access mysession = 0 Tehát az a lényeg hogy nem elég csak simán megmondani neki hogy az access területre tegye, hanem konkrét címet is kell rendelni hozzá session névvel együtt. Idézet: „Hmm.. Köszi! Na mindegy, pedig ebben a topicban láttam egy ilyet:” Akkor az a WAIT egy makro ami valahil definialva van a projectben - nezd vissza azt a projectet, hogy hol definialtak...
Ha jól értelmezem a programod, azt csinálja hogy ha a PC-ről küldesz neki egy 'O' karaktert (mondjuk egy terminál programból) akkor a GPS felől egy byte-ot megpróbál beolvasni és a PC felé átküldeni.
Nekem gyanús, hogy az egyes lefutásoknál az output_buffer tartalma felülírásra kerül. Célszerűbb lenne egy pufferbe gyűjteni az adatokat, és ha van a pufferben adat, akkor a ProcessIO()-n belül csak egy helyről hívni a továbbítását az USB felé. Kell egy
Most így ez jutott eszembe...
Kipróbáltam, de sajnos még így sem jó, az usb-n jó minden, de egyszerűen olyan mintha nem is lenne soros portom, semmit sem továbbit az usb felé. Valamit kihagytam volna?
Átviteli sebesség jó? A gps folyamatosan küld adatot?
A gps folyamatosan küldi az adatokat, megnéztem.
Elvileg 4800bps a sebesség.
Hy! Egy PIC mennyire birja az erős mágneses teret? Nagyon összezavarja, ha van mellette egy erős állandó vagy elektromos mágnes?
Ha a mágneses tér időben állandó, akkor semmit nem számít. Ha váltakozó a mágneses tér, akkor az számíthat, de ahhoz azért nem gyenge mágneses térre van szükség.
Nem látom, hogy a soros port kiszolgáló rutinban vizsgálnád-e, hogy kész-e a vétel. Hiába küldi folyamatosan az adatokat a GPS, ha nem várod meg, míg beér egy értelmezhető csomag.
Tudnál mutatni hozzá valamilyen forráskódot, amiből ki tudnék indulni? Keresgettem a neten, de nemis tudom igazán hogy keressek pont erre.
![]()
Az MCC18 helpje nagyon jó ám! Keresd a telepedett könyvtár docs könyvtárában!
Egyébként azt, hogy van-e beérkezett adat, egyszerű megnézni:
Ezzel csak annyiban kell vigyázni, hogy ha nem jön adat, akkor innen soha nem lép ki, de ezt majd ráérsz lekezelni, ha már a programkereted kész. (lekezelés egy ciklussal való várakozás lehet, ami ha letelik, akkor kilép és hibakóddal jelzi, hogy nem jött adat. Ez a módszer, akkor jó, ha közben más feladat nincs...)
Ezzel csak az a gond, hogy nincs timeout benne - otthonra jo megtanulni a fuggvenyeket, de igazi kornyezetbe inkabb valami for-os ciklus kellene ido lejarattal, pl valami hasonlo:
De lehet jobb lenne valami interruptos timeout, de akkor is figyelni kellene egy flag-et...
Ezt alkottam a hozzászólásaitok alapján:
És mintha menne, mert másodpercenként 1-2 alkalommal küld adatot a gépre a pic, csak az a baj, hogy értelmezhetetlen karakterek jönnek.
Nem mentegetőzni akarok, de mintha én is említést tettem volna erről a hozzászólásomban! Nem olvastad?
![]()
A PIC-től a PC-re érkezik H az USB-n?
És ha lecseréled valami teszt értékre a "c"-t, akkor az jól érkezik a PC-re? A GPS panel mit küld, azt tudod? Ha az GPS panelt rögtön a PC-re csatlakoztatod(max232-vel!), akkor milyen karaktereket küldözget? A H egyébként 72dec(0x48h). Ez nem valami kommunikációra felszólító jel a GPS modultól? |
Bejelentkezés
Hirdetés |