Fórum témák
» Több friss téma |
Fórum » CCS PIC Compiler
Szia! A programodban miért van az a sok matematika, mikor tartalmazza a táblázat a sinus értékeket?
Hali
Mert en utalok begepelni tablazatokat. A szinusz tablazatot igy tagok, amplitudo, es tartomany szerint generalom. Nem muszaj hasznalni. Csa Vili
Hali. Nem kritizálni akarom, hanem tanulni belőle, sőt nagyon is érdekel hogyan generálod a táblázat egyes elemeit. Az a 200elemes táblázat mire való a program elején?
Hali
Az volt az eredeti szinusz tabla, de most komment. nem forditja be. A forras amit kuldtem nem egy kesz, letisztazott program, hanem felkesz probalkozas. Azert kuldtem, hogy lasd a PWM inicializalasi folyamatat. Termeszetesen szabadon hasznalhato minden reszlete. Csa Vili
Ok, és még egyszer nagyon szépen köszönöm.
Lajos
Sziasztok!
Probálkozok egy Ti PCF8574 -el kisérletezek, de az alábbi kódsorral semmit sem csinál, vagyis nem kapcsolja be az összes porton a ledeket. Tudna valaki segíteni? I2C_Start(); I2C_write(0x20); I2C_write(255); I2C_stop(); A0,A1, A2 a GND -re van kötve
Az adatlap alapján én 0x40-nek olvasom a slave címet. (Bár fogalmam sincs, hogy a CCS C hogyan kezeli)
Hali
Az eszkoz irasahoz nem 0x40 cim kellene? Nekem az jon ki az adatlapbol. Ja es 2 data byte-ot var, ha minden igaz Csa Vili
Mivel az IC -t a Texas gyártotta én az ö adatlapjukat néztem és oda 0x20 van írva címnek. Át is nézem még egyszer remélem nem néztem el.
És mi a 2. data byte? Az angollal nagyon hadi lábon állok.
Én a texas által közölt adatlapban is 0x40- es címet látok (A2,A1,A0 = 0 és Write) esetén.
Semmilyen két adat byte nem kell, először kiküldöd a Slave címét (0x40) aztán meg az adatot. A két byte-os dolog arra vonatkozik, hogy mindig az lesz az IO bővítő kimenetén, amelyet legutoljára ACK jellel nyugtázott a slave.
Hali
Mivel felso 7 bit a cim, a 0. a R/W nekem 0x40 jon ki. Azt nem tudom miert keri 2x a data-t, de a masodikra irja at a kimeneti regisztert.
Köszönöm, mindjárt megpróbálom.
Köszönöm mindenkinek a segítséget.
0x40 címmel megy. Nem tudom hogy mért néztem így el. Ha esetleg még valaki el tudná magyarázni az INT láb funkcióját az megköszönném.
Ha a portbővítőt bemeneti portként használod, akkor a legutóbb beolvasott állapothoz képesti megváltozás hatására generál egy interruptot, amelyet a mikrovezérlő INT lábára kötve figyelhetünk, így csak akkor kell a portot olvasni, ha változás történt (nem kell pollingozni). Fontos, hogy a /INT kimenet open-draines, így használatakor felhúzó ellenállásra van szükség.
Köszi szépen, hogy elmagyaráztad.
Jó éjt mindenkinek.
Sziasztok!
Megint a Pcf8574-el akadtam el. Bemenetként szeretném használni az összes portot mindegyik porton 4,7K felhúzó ellenállás van. Az INT láb nincs bekötve. I2C_Start(); I2C_write(0x41); key=I2C_read(0); I2C_stop(); printf(nokia_printchar,"PCF8574: %d\n", key); Tehát az a problémám az, hogy a beolvasott key értéke negatív szám kivéve a P7 -et Tehát: P0=-27, P1=-37, P2=-57, P3=-97, P4=-17, P5=-33 P6=-65, P7=127. Ez normális?
Hali
Nem ertem a kerdest. A P0-P7 az bit valtozo, nem byte, tehat csak "0", vagy "1" erteket vehet fel.
Szia!
Ha key nem unsigned-nek van definiálva P7 előjel bit, tehát amíg értéke 1 key értéke negatív.
Értem, mindjárt át is írom
Sziasztok! Kérdésem a következő:
Fő programomban létrehoztam egy Idézet: nevű regisztert amire szeretnék hivatkozni egy másik állományban (ez egy header files ami szeretne dolgozni a pwmcon1 regiszterrel. Most az mplab nem tudja fordítani mert hibát ír.„#WORD PWMCON1 = 0x1c8” Idézet: „seged.h" Line 15(1,8): Undefined identifier PWMCON1 ”
Hali
Az #include elott definiald a valtozodat, es akkor nem fog visongani a fordito.
Ohhhhh erre vártam köszönöm neked, a pic miértek és hogyanokban már kezdtem megrettenni
A sima változóknál meg az extern előtaggal használjam az adott header-ben? Vagy ott is célszerű az #include elé betenni?
Hali
Valtozokat, fuggvenyeket, mindig a hasznalatuk elott kell deklaralni. "Extern" tipust csak akkor hasznalj, ha tobb modult forditasz es a linker ollozza ossze. A CCS C-nel a Main() elott deklaraltak "global" kent lesznek figyelembe veve. Olvasd el a CCS manualt, abban sok minden le van irva.
Ebben az esetben amiben én is szenvedek több modul van csináltam még egy header-t mert nagyon nem láttam már át Nézegettem a manualt, de erre semmilyen utalást nem találtam, hogy az #include elé kell írni. Le van valahol írva?
Most egy 240x64-es, T6963C vezérlős GLCD-vel játszogatok. Miután sikerült életre keltenem, szerettem volna egy-két képet is kiíratni. Kipróbáltam jó néhány bmp2LCD progit, de a generált kódot nem tudtam kiíratni a kijelzőre. Az lenne a kérdésem, hogy mi a legegyszerűbb út ehhez? Kaphatok-e mintaprogit a megoldásra? Előre is köszi!
Vegulis ez logikus. A fordito sorba vesz minden sort az elejetol, es ha egy modulban van egy valtozod, fuggvenyed amit elotte nem deklaraltal, akkor szetteszi a kezet, hogy nem talalom xy valtozot, es kiall hibaval.
Köszönöm egyre jobban azt tapasztalom, hogy te segítesz nekem a legtöbbet nagyon értesz a ccsc-hez régóta használod?
Hali
Ezt nezted? A MikroE C telepit egy programocskat ami BMP-bol csinal C filet (basic, pascal is). Probald ki.
Hali
Vegulis eleg regota, de en TurboC-ben kezdtem meg a mult evszazadban(DOS alatt). Arra irtam sok programot, es ugye igy mar volt gyakorlatom mikor a PIC-en elkezdtem C-zni. Ja es sokat olvastam a regi C-s konyveket. Eloszor kisse nehezkes volt az eloregyartott fvenyei miatt, de rajottem hogyan egyszerubb kezelni a dolgokat, es lassan kikopnak ezek a fvenyek. Csa Vili |
Bejelentkezés
Hirdetés |