Fórum témák
» Több friss téma |
Ez így valóban nem igaz, pontosítanék: A MikroC PRO for PIC-nek támogatnia kellene az eszközt.
Sziasztok. Egy kis segítség kellene. Ne értek a PIC program írásához. Kellene nekem ehhez a kapcsoláshoz egy hex fájl. http://www.edutek.ltd.uk/NCProjects/PIC_Alarm.html Az oldalon látható időzítési idők megfelelőek (20s, 10s, 30s). Elöre is köszönöm a segítséget.
Sziasztok!
XC16-os fordítóval próbálnék lefordítani egy programot. A gondom a késleltetésekkel támadt. Ugyanis az XC16 User guide-jában azt írja hogy használható a __delay_ms, de a fordításkor ezt a hibát írja ki: Idézet: „warning: implicit declaration of function '__delay_ms'” Nem tudom mi lehet a baja. Valamit kéne include-olnom a projekthez?
A libpic30.h ban van deklarálva a __delay_ms() fv, #include <libpic30.h>.
Azt elfelejtettem írni (gondolom eddig XC8-at használtál) itt FCY(FOSC helyett) kell deklarálni az utasítás ciklusok számának és az = az órajel amin fut a PIC / 2.
A hozzászólás módosítva: Szept 2, 2015
Köszönöm a segítséget. Már eggyel közelebb kerültem a sikerhez, de még mindig valamilyen hibát ír a fordító.
Idézet: „In function `.LSM13': undefined reference to `___delay_ms'” Nem tudom mi akar ez lenni.
Az általad belinkelt oldalról letölthető szoftver állítja elő a HEX állományt. Szerintem ehhez nem kell a PIC programozáshoz érteni és a PIC programozás ismerete sem jelent előnyt...
A programban csak két aláhúzást tettem de a output ablakban a hibánál hármat mutat. Megnéztem a libpic30 kódját és anban ezt a sort
Idézet: módosítottam erre „#if !define(FCY)” Idézet: és így már lefordította a programot és szépen működik is.„#if define(FCY)” Köszönöm a segítséget.
Inkább a Te programodba kellett volna elhelyezni egy
sort, amiban a tényleges órajel értékét adhatod meg.
Ezt a sort hozzáadtam a programomhoz de akkor is hibát írt. Ezért módosítottam a libpic30 kódját.
Sajnos csak az 1.11 verzió van kéznél... Itt még Fcy a szimbólun neve. Amennyiben nincs másutt megadva, egy default értéket ad neki.
A hozzászólás módosítva: Szept 3, 2015
? ? ? Ez az állomány az XC16 része. ? ? ? Csak kiemeltem onnan, hogy lássuk, mit csinál. Ha az újabb verzióban is ez van (Fcy -vel), akkor a saját programodban csak ez kell:
Ha megváltorztatták a szimbólum nevét, akkor értelemszerűen a sorban azt kell megadni, amire változtatták. A hozzászólás módosítva: Szept 3, 2015
Az újabb verzióban nem az van amit írtál. Írtam hogy definiáltam a programban az FCY-t de ugyan úgy hibát írt ki a fordító és nem fordította le a kódot. Ezután azt a kódrészletet amit linkeltél beletettem a libpic30- ba és ezzel is működött ahogy az én megoldásommal is. Az új verziójú XC16- ban is FCY- t kell definiálni.
Mit is írjak????? Milyen jó, hogy egy világhírű cég ennyire következetes!
Idézet az XC1.11 -beli libpic30.h -ból: (Ezt találtad meg.)
Idézet az XC1.11 -beli delay.h -ból:
Annyi a baj, hogy az a fránya fordító különbséget tesz a kisbetű - nagybetű között. Még el is menne a hiba, ha ez 1.01 verzióról lenne szó. De ez a fordító más két éves!!
Azaz az FCY- t Fcy- nek kellene írni? Csakmert én minden betűt naggyal írtam.
Valóbban igazad van,de a leölhető program free és nem generál hex állományt.
Nem ennyire egyszerű a perobléma. Úgy néz ki, mind a kettőt (FCY Fcy) meg kell adni. Éljen és virágozzék....
Ha minden ilyen egyszerű lenne akkor szerintem én lennék Einstein 2
Sziasztok!
Több PIC között kommunikációt szeretnék megvalósítani. Egy master PIC hőmérsékletadatokat kérdezne le, majd tárolna el 2, vagy 3 slave PIC-től. Fizikailag 50cm-en belül helyezkednek el egymáshoz képest. Milyen kommunikációt célszerű használni erre az esetre? Üdv, Attila A hozzászólás módosítva: Szept 7, 2015
Milyen hőmérőkről van szó? Vannak 1-wire, I2C, esetleg SPI kommunikációt használó digitális hőmérők, amelyekhez nem kell slave PIC sem.
Attól függ mi van az eszközökben, de miért egy másik PIC szolgáltatja az adatot. Nem hőmérő meg hasonlók? Azokban I2C meg 1wire a leggyakoribb.
szerk. látom megelőztek közben. A hozzászólás módosítva: Szept 7, 2015
Egy sima NTC ellenállás, amit egy slave pic dolgozna fel. A hőmérsékletadatok továbbításán kívül több dolga is lenne a slave eszközöknek, ezért gondolkodtam ilyen megoldásban.
Köszönöm a választ.
Az RS485 és a 1-Wire is megfelelőnek tűnik, és az is nagyon előny, hogy a MikroC-nek vannak beépített függvényei ezek kezelésére. Próbálkozom kitalálni, hogy melyik lesz a nekem megfelelőbb.
Szerintem az RS485 kicsit túlzás 50cm-re... nembeszélve a (viszonylag) nagyobb fogyasztásról, mivelhogy az árammal és nem feszültség szintekkel működik...
Szerintem I2C vagy SPI, netán JTAG vagy LIN (de lehet akár CAN, USB, Ethernet vagy WiFi is)
Sziasztok.
Egy másik topik-ban ajánlották, hogy próbáljak meg itt segítséget kérni a problémámra. http://www.hobbielektronika.hu/forum/topic_305.html A hozzászólás módosítva: Szept 8, 2015
Ellenérvek:
I2C: a hosszú, nyitott kollektoros / nyelő elektródás vezetékek zavarérzékenyek. SPI: 2 + n vezeték kell (kiválasztó vezetékek). JTAG: minimum 5 vezeték és a címzés megoldása. Ethernet - Wifi: Ennél más az RS485 is kisebb foigyasztású. Érvek: RS485: 4 vezetékkel már elláthatók az érzékelők táppal is. 1-Wire: Összesen két vezeték kell. BlackNet: lényegében uart, de a táplálást is megoldhatja. Más: Esetleg a DCC megoldását is fel lehet használni - uart polaritás váltóssal, a slave a tápot a vonal egyenirányításával állítja elő. |
Bejelentkezés
Hirdetés |