Fórum témák
» Több friss téma |
Igen, van ra esely, hogy oda kerul olyankor, de nem szabad ezzel szamolni. Egy fokkal magasabb az absztrakcio, mint az abszolute modnal mikor konstans blokkal adjuk meg a valtozok cimeit, ha lehet igy fogalmazni, es talan egy fokkal van a magas szintu nyelvek alatt. Ott is az mukodes szempontjabol mindegy, hogy hova kerulnek a valtozok, a lenyeg, hogy el legyenek tarolva valahol.
Üdv!
Köszönöm a segítséget csak annyit kérdeznék még hogy a C4, R11, az alkatrészlistában szerepel de *-al megvan jelölve hogy nem kell beültetni na most akkor kell vagy nem?
Üdv.
A Piccolo project keretében eddig az USB/PC adatmegjelenítéssel próbálkoztam (HID és CDC módban) I2C eszközök (LM75 hőszenzor, PCT8353 óra). Szeretném az adatokat LCD- n megjeleníteni. A project LCD4x4 kodtabla-4550 programján próbálkozom, amikor próbálok a I2C buszról adatot beolvani, (pl. LM75_readTemp(uint8 addr) függvénnyel) az LCD leáll. Hogyan közelítsem meg a problémát, induláshoz kérek némi segítséget.
A 7405 nem jó oda. Tegyél bele 7406-ot, vagy 7407-et. A kondi és az ellenállás pedig kell.
Szia!
R11 kell, ha hosszabb az LPT kábel, akkor 1k -ra lehet csökkenteni. C4 nélkül is működik.
Üdv!
Köszönöm a gyors segítségeteket. Sok fórumban NEM ilyen segítőkészek!!! Tisztelettel: István Idézet: „Hogyan közelítsem meg a problémát?” Kapcsolási rajzot mutass és csatold be a projektet, amivel próbálkoztál! Mit jelent az, hogy az LCD leáll?
Még mindig maradva a rellokálható fordítási módnál a következő problémám van az MPLAB beállításokkal. Van trudnainak egy nagyon jó anyaga a neten itt, de nem világos belőle, miért így kell az MPLAB nak megadni a paramétereket.
Eső körben a *.lkr filet adja hozzá a projethez. Eddig érteni vélem, habár nemtudom miért kézzel kell ezt megtenni, hiszen az MPLAB nak tudia kell milyen device -re fordít. Ezután a Set Language Tool Lacations / Linker Sript Search Path -ban kell megadni a LKR -k folderét. Ezt megint miért? Nem tudná az MPLAB? Ráadásul az előbbiekben már csatoltuk a projekthez a linker filét Ezután a Project / Set Language Toolsite ban ha jól értem ellenőrizni kell, hogy a linker folederünk a megfelelő helyre mutat -e. Ha ez csak tényleg ellenőrzés oké, de talán ez is kissé bonyolított a procedúrán.
Szép napot!
Infra vevőt szeretnék készíteni amelyhez jó az univerzális távirányítóm(tanítható). Csak 2 jel kellene, elektromos redőnyt szeretnék vele fel-le húzgálni. A legjobb az lenne, ha volna HEX kód is, rajz is egy adóról és egy vevőről az adó kódját pedig meg taníthatnám a távirányítómmal. Meg oldható ez, vagy bonyolult nagyon? Köszönöm szépen előre is! mhatalyak
Szia!
Ha kész vagy a 7406 / 74LS06 -ra cserével, akkor a kettős Vpp kapcsolás nem fog tetszeni sok vezérő programnak. Rengeteg program esetén lehet állítani a portbiteket, de mindegyik csak egy Vpp kapcsoló bitet használ. Ebben az áramkörben a különböző méretű tokok miatt van kettő. Sajnos így típusfüggő lesz a beállítás... Idézet: „Hogy kéne ezt "jól csinálni"..?” Nem tudom, hogy hány méterre akarod elvinni, és nem tudom, hogy mennyire zajos elektromágnesesen a környéked. 5-10-15 méterre egy sima árnyékolt kábellel simán kell mennie a 4800bps-nek, ha nincs különös zavarforrás a közelben. Ha sokkal többet szeretnél, nagyobb tempóra vágysz, esetleg bármi zavaró forrás van (nagyobb villanymotorok, ill. vezérléstől függően a fényerőszabályzós lámpák is gázosak lehetnek), akkor szóbajöhet egy szimmetrizáló "betét". Mindkét vonal (RX-TX) egyik végére teszel egy RS485 adót, a másik végére meg egy RS485 vevőt. Árnyékolt UTP kábelen ezzel 4800bps-t szerintem kilométeres távolságra simán el lehet vinni.
Sziasztok. Timer megszakításnál az INTCON GIE és az INTCON T0IF biteket mikor szokták kikapcsolni? A végén a megszakításnak vagy még az elején?
Az INTCON GIE soha. Ezt az IT kiszolgalas automatikusan kezeli. A masik bitet meg a RETFIE utasitas elott ki kell nullazni, de nem sok jelentosege van hol csinalod. Legfeljebb ha az IT rutinban figyeled a bitet, akkor a vizsgalat utan.
Köszi. Igazából nem akart működni a program. Arra gondoltam hogy biztos ezzel van a hiba. De rájöttem hogy már a option_reg-ben rontottam el a beállításokat. Most már működik.
Üdv.
Köszi, sikerült megoldanom. Így nap végére legalább van egy kis siker élményem. (a hőszenzor és az óra adatait is sikerült elérni és kiíratni az LCD-re. Persze nem teljes az örömöm mert rengeteg dolog van amit még nem tudok: pl. hogyan lehet 1 sorban folyamatosan több változó értéket egymás után kiírni. Keresgetek infót, biztos találok. Viszont nem tudom a hőszenzor mért adatát megfelelő módon megjeleníteni. Bizonyára megint alapvető hiányosságaim egyike az oka, igyekszem pótolni. while(1) { Delay10KTCYx(100); temp=LM75_readTemp(0x90); tmp32=(temp*10L+128L)/256; lcd_write(0x80,0,1,1); printf("hőfok:%d",temp); Delay10KTCYx(100); lcd_write(0xC0,0,1,1); printf("höfok:%f",tmp32); } a tmp32 értékével van gondom ez 0 érték, a temp értéke jó.
Koszonom az eszrevetelt! Mar nagyon regen csinaltam azt a leirast, de ugy emlekszem, hogy valami nyugje volt a 8.10-es MPLAB-nak (s talan a korabbiaknak is?), tehat ha a linker path nem volt megadva a projectben, akkor hiaba adtuk hozza az LKR filet akkor sem tudta hogy hol keresse. Most kiprobaltam 8.30-assal, ott nem kell ezt a szornyuseget elkovetni. A toolsuitben a default path-t csak azert adom meg ott, hogy a kesobbiekben konnyu legyen a projecthez hozza adni ezeket az utvonalakat.
Ami az LKR file hozzaadasat illeti: Az nem art hozza szokni ahhoz, hogy magnk valasszuk ki a szkriptet szerintem meg akkor sem, ha amugy az MPLAB/MPLINK eleg okos hozza, hogy az elepertelmezettet kivalassza Mar csak azert is, mert nem csak egyetlen linker szript lehet egy eszkozhoz. A linker szkriptet is lehet konfiguralni, es kulonbozo projectekhez mas es mas linker szkriptre lehet szukseg, meg ha a PIC ugyanolyan tipus is. (Hozzateszem, hogy ugy emlekszem mikor azt a leirast csinaltam meg mintha nem hasznalta volna automatikusan a szkripteket az MPLINK).
temp és LM75_readTemp() 16 bites előjeles egész (int vagy int16) típusú legyen.
temp32 pedig 32 bites előjeles egész (int32 vagy long) legyen.
Szaisztok!
Találtam a neten egy PIC-es távirányítót 8 csatornás, van hozzá adó és vevő, ott a progi is, de sajnos HEX ben nem találom. Esetleg valaki venné a fáradságot és át konvertálná nekem az adóhoz és a vevőhöz is? Esetleg egy progi név/link is jó lenne. Köszönöm szépen előre is! mhatalyak
Én is találtam egyet, és benne vannak a hex állományok is (adó/vevő).
Ezzel az a baj, hogy rádiós, én pedig univerzális távirányítóval szeretném használni. Építettem az előbb egyet, ami Sonyhoz való, 8 csatornás az is, de sajna nem működik vele.
Szerk: Elnézést, most látom, hogy át lehet állítani az oldalon Infrared-re! Köszönöm szépen, meg próbálom összerakni! mhatalyak
Ilyen típusú változókat használok, hiszen a Piccolo projekt
LM75_i2c.c progiból vettem át. A a bajom hogy a kiíratásnál a tmp32-re ha %d adok opcióként a printf-ben akkor 0-át, egyéb opciók esetén %f,%e pedik nem ír ki karaktert. Kipróbáltam a tmp32 egyenlővé tettem:25,4-l és ezt sem irta ki. Azt gondolom hogy a kiíratás körül lehet valami probléma.
A C18 library dokumentációját kellene tanulmányozni (lehet, hogy printf helyett fprinf kulcsszóra kell keresni).
%d vagy %i az tudtommal itt "int" típust konvertál. %f és %e elvileg lebegőpontos volna, ami itt talán nincs is. A %d-hez alighanem az "l" módosítót kellene használni, hogy long típust konvertáljon. Idézet: A fordító mit szólt hozzá? Ugyanis a tmp32 egész típusú, de a tizedesvessző egyébként sem stimmel (pont kellene)!„Kipróbáltam a tmp32 egyenlővé tettem:25,4-l” Egyébként tmp32-ben tizedfok egységekben egész számként tároljuk a hőmérséklet értékét. Tehát 23.5 fok esetén 235 lesz benne.
Sziasztok.
A watchdog timert szeretném használni beállítottam amit kellett: __CONFIG _HS_OSC&_CP_OFF&_WDT_ON&_LVP_OFF BCF STATUS,0 CLRF TMR0 BSF STATUS,0 CLRDWT MOVLWB'1000' MOVWFOPTION_REG BCFSTATUS,0 A konfignél bekapcsoltam a watchdogot beírtam az előosztást, de az MPlabba az option_reg értéke mindig 255 és hiába várom a resetet nem jön. Mi lehet a gond? (Persze az sem egyszerű, hogy 18msec idő szimuláció során nem kevés, talán csak keveset vártam?) Már van egy alap programom ami működik az szépen fut direkt nem tettem be clrwdt-t hogy majd resetelődjön, de eddig semmi.
Üdv Mindenkinek!
PIC programozást szeretnék tanulni C-nyelven. Amiért új témát nyitok a következő: A meglévő kezdő témák linkjei már nem jók, ha jó a link a letöltött fájl hibás - pl: a Microhip oldalán- Ha jó a link és a fájl, akkor az új verzió miatt már nem azokat az útmutatásokat kell követnem, mint amit leírtatok. Valamint a leírások többsége egyből belevág a programozásba, anélkül, hogy tisztázná mi a project include stb... Oshon pic Basicban már programoztam, és assemblerben is csináltam led villogtatást, de komolyabb dolgokhoz C-kell. Tehát jó lenne ha valaki végig tudna vezetni az alapoktól. Nekem Jó lenne magánban is amiért fizetni is tudnék, de az nem szolgálná a többi kezdő érdekeit. Várom segítségeket!
Miert nem linked be amit talaltal? Nem biztos, hogy mi ugyanazt talaljuk meg amit Te...
Szerintem nem kellett volna új téma!
A ccs pic topikban rengeteg segítséget találsz, és van pic kezdőknek téma is! A ccs legalapabb dolgait pedig leírja a "PIC programozás C nyelven - CCS - I. lecke" c. cikk! Projekt nyitása, beállítása, stb. Bővebben: Link Szerintem ez elég a kezdéshez! Anno nekem legílábbis elég volt, és ha ezek után nem tudsz valamit, akkor jöhetnek a kérdések!
Juhász Róbert honlapján az MPLAB szekcióban találsz leírást az MPLAB 8.1 használatáról.
A C nyelv alapjaihoz a klasszikus szakirodalom (Kernighan-Ritchie: A C programozási nyelv) ajánlható. Magántanárt az "Apróhirdetés" rovatban (jobb felső sarok) kereshetsz.
A tizedes vessző csak tévedés volt, ahogy illik pontot használtam. A fordító lefordította, csak nem került kiírásra.
A tmp32 váltózót int16-ra módosítottam és így ki tudtam íratni az LCD-re printf %d opcióval. Az LCD-n csak egész típusú változó értékeket lehet megjeleníteni? a float típusokat nem sikerült kiíratnom. Vagy külön kell kiküldeni az egészet , a tizedes vesszőt és a törtrészt? Idézet: Mert mit akarsz programozni? Ursiklo vezerles PIC16F84-el? Szerintem siman a MPLAB + ASM a nyero kombinacio kezdoknek. Persze lehet C-vel is kezdeni, de altalaban az a cel a kezdoknel, hogy megismerje a PIC felepiteset, alapveto programozasi fogasokat, regiszterek tertalmat, hasznalatat. Na erre nagyon jo a MPLAB, az ASM, es a beepitett szimulator. Amikor mar megismerted ezeket, elo lehet venni a C nyelvet es abban meg lehet alkotni az atomeromu vezerlest. Azert hogy ne csak papoljak, toltsd le a doksikat, es a demo panel terveket. Talalsz mintapeldakat C es ASM nyelven, valamint leirasokat. „de komolyabb dolgokhoz C-kell.” Idézet: Ennek semmi köze az LCD-hez. A C18 esetében a printf-ben tudtommal nem implementálták a float típus kezelését.„Az LCD-n csak egész típusú változó értékeket lehet megjeleníteni?” Legegyszerűbb, ha az outdec() függvényemnek elkészíted a párját, mondjuk outdec_LCD() néven, s csak a karakterkiíró függvény meghívását kell kicserélni benne, hogy ne az USB-re hanem az LCD-re írjon.
Az aláhúzottakat kell lecserélni... |
Bejelentkezés
Hirdetés |