A privát üzenet rendszerben karbantartásokat végzünk. Lassulások előfordulhatnak!
Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Kiváló okfejtés, nagyon korrekt megoldás!
Nemrég, amikor az LCD-s óra progiját írtam a 16F946-ra, megszenvedtem én is a timer pontos reint-jével. Igaz, nálam a Timer1 oszci jár 32768Hz-es órakvarcról (aszinkron mód) és amikor a proci dolgozik, akkor azt internal 8MHz-ről teszi, a holtidőben meg alszik. A billentyűkezelés és más egyéb dolgok miatt (pl. csipogás, ébresztés funkció van még tervben) másodpercenként 16 interruptot használok. Beszúrom azt a kódrészletet, amivel pontossá vált az óra (kb. 5 hete jár, most siet 12 másodpercet), hátha más is hasznát veszi:
Szerintem ezen ne vesszünk, ne vesszetek össze, nem érdemes!
Azt bizonyára tapasztaltad, hogy értelmes kérdésre értelmes válaszok szoktak születni. A Te érdeked is, hogy ne a kérdés megértésére menjen el a sok energia, hanem inkább az építő jellegű válaszokra!
Egyelőre még csak elméleti szinten kóstolgatom ezeket a számomra új dolgokat. Mindenesetre köszönöm az infót, és átbújom a példákat az adatlapban.
A lehető legnagyobb tudású, C-nyelv kitalálói, kifejlesztői, annak ősatyjai.
Sziasztok! Az volna a problémém hogy nem tudok nagy méretű strukt tömböt létrehozni(100 elem kb 700bájt) de a mcc18 as fordító ne engedi pedig azt írja kb1000 bájt még szabad. Valaki aki tud erről valami osat írjon előre is köszi!
Azért azt beírhattad volna, hogy pontosan mivel próbálkozol és mi a fordító hibaüzenete!
Nekem úgy tűnik, hogy bármely adatszerkezet mérete maximum akkora lehet, amekkora egy memóriabank mérete, vagyis 256 bájt. Kikerülheted így, és azután az index alapján döntesz, hogy melyik tömböt használod:
Szia Menyus,
Lehet a logikai aramkorokkel jobban megertened ezeket - nezd meg a logikai igazsag tablazatot itt, felul az A es B bemenet, es ott latod oldalt a kulonbozo muveletekes (erdekes, magyar oldal ennek ellenere angolul vannak a muveletek, de itt nem is baj, mert igy felismerhetoek az utasitasok )
Köszönöm a választ kipróbálom! Következőek pontosabban foglalkozok!
Picit mélyebben belemenve arról van szó, hogy alapból az sw stack területen történik a helyfoglalás. Az sw stack pedig 256 byte méretű alapból nagyobb PIC-ek esetén. Ha nagyobb stacket szeretnénk használni, akkor a linker scripet kell módosítani - user manualban le van írva, hogyan - és át kell állítani a stack modelt a single bank modelről multi bank modelre. Hátránya ennek a megoldásnak, hogy kevésbé nagyobb kódot eredményez. (kevesbé optimalizálható)
Van egy másik megoldás is, static -al történő definició esetén nem a stack területen jön létre a változó, de ekkor is ki kell jelölni neki a linker scripben és az udata -ban a helyét. Ezek egyébként benne vannak a user manualban.
Diplomatikus válasz.
Gondoltam, hogy fordítás, ezért kérdeztem. Szerintem néhol félrefordítottak vagy legalábbis érdekes szavakat/kifejezéseket használ. Ettől függetlenül nem rossz...
Sziasztok!
Szükségem lenne egy kb 110x30mm-es billentyűzet tasztatúrára! Az igazi az lenne, ha összesen 4 v. 5 darab gomb lenne rajta. Tudtok valami hasonló forgalomban levőt? Ha gyártatni akarna az ember, akkor kihez érdemes fordulni? Köszi! Zoli
Linker scriptben letre kell hozni egy nagyobb teruletet a tomb v. struktura szamara, majd #pragmaval megmondani, hogy a tombod arra a szekciora keruljon. Ezutan egy pointert kell definialni es azt hasznalni. Ez amugy le van irva a C18 C Compiler Getting Started -ben a FAQ-ban... Ott van egy kis peldacska hogyan modositsd a linker scriptet.
Üdv!
Már régóta szemezem a "pixels féle" Winamp vezérlővel, és van otthon egy "elfekvő" PIC16F871-em is. (Kónya-féle könyv gyakorló paneljében) Winamp vezérlő soros portra Azt szeretném megkérdezni, hogy a fenti uC-re mekkora meló lenne átírni a firmware-t, illetve a kapcsolást átkonstruálni? Feltételezem, hogy a használt portokat nagyjából ugyanúgy kezeli a 16F871 is, csak nagyobb tokban van és adatlap alapján többet is tudhat... Vagy nem érdemes "elpazarolni" a 16F871-et erre a készülékre?
Ugye nem azt az 500Ft-ot szeretned megsporolni amennyibe az a 16F628 kerul?
Üdv!
Természetesen nem! :no: Csak inkább szakmai oldalról érdekelt volna a téma, hogy mennyire "lefelé kompatibilis" a nagyobb PIC. Feltételezem, hogy a 16F871-et esetleg "komolyabb" feladatokra lenne érdemes használni majd, és érdemes megvenni a 628-at ide, ahogy az építési leírásban van. Kedves HEStore! Ebből az áramkörből esetleg nem lesz majd kit valamikor? Köszönöm! Vales
Szia Vales,
Ha megvan a forraskod, akkor viszonylag egyszeru atnezni a kodot milyen modulokat hasznal, van-e minimum ugyanannyi portja, feture-oket ha hasznal akkor azok a masikban is megvanak-e stb. Utana nagyjabol csak annyit kell tenni, hogy atnezni mindket adatlapot, hogy a 871-ben megvannak-e ezek a modulok ill elgondolkodni azon, hogy a portokat pl hogyan kell egyiknel-masiknal felinicializalni. Mivel mindketto 16F es midrange-es, ezert jo esely van ra, hogy nem sok munka atirni a firmware-t, de ilyen egyszeruen nem lehet azt mondani, hogy nagyobb szamozast kapott a chip ezert az komolyabb vagy nagyobb. Bocsanat az altalanossagokert, de most nincs idom a ket adatlapot meg a firmware-t atnezni, de ha erdekel es atnezed es kerdesed merulne fel magam is de szerintem masok is itt a forumon szivesen valaszolnanak. Udv, Tamas
Üdv!
Köszönöm előre is, ha majd "belevágok"! :yes: Az az igazság, hogy régen tanultam már PIC-et (még a főiskolán, Kónya tanárúrtól, de sajnos a vizsgám és maga a főiskola sem sikerült ), ezért nem nagyon emléxem fejből a tok képességeire. De előkotrok mindent, a gyakorlót és az adatlapot is, aztán megnézem "ki mit tud". Ha a HEStore-ban egyszer kit-ben meg lehetne ezt is venni, az nem lenne rossz ettől függetlenül. V.
Sziasztok!
Szeretném az adataimat rs485-ön is kiküldeni és fogadni. Nincs szükségem több gép kommunikációjára, csupán egyetlen pic és egy pc között kell kapcsolatot teremtenem. Tudnátok kicsit segíteni? Ha nem túl nagy kérés, valaki tudna egy egyszerű kis kapcsolási mintát mutatni? Neten többfélét is buheráltam, és nem igazán tudom, hogy mire van szükségem. Előre is köszi! Üdv Zoli
A PC oldalra kell egy MAX232 is, ami a soros port jeléből TTL jelet csinál, majd ezt rá lehet küldeni az SN75176 chipre. A PIC oldalon megint egy SN75176 chip kell a kontroller mellé.
Az a kérdés, hogy kétirányú kommunikációt akarsz, és azt egyidőben akarod-e? (bármikor bármelyik küldhet adatot a másiknak, vagy az egyik a főnök és csak akkor megy kommunikáció, ha a főnök kéri?). Mert ha egyidőben kell a kétirányú, akkor mindkét oldalra két-két darab SN75176 kell, és akkor fixen be lehet kötni a vezérlő lábakat, ha viszont egyidőben csak egy irányba mennek az adatok, akkor a vezérlő lábakat is kezelni kell. Szóval írd le pontosan, hogy mit szeretnél megvalósítani, és akkor tudunk konkrétan mutatni valamit.
Szia!
Hosszabb távon jobban megéri ha egy időben mehet mindkét irányba a kommunikáció, így jobban érdekelne az a verzió! Köszi!
Nem feltétlen lesz a készülék a pc közelében! Lehet, hogy csak 30-40m távolságban.
Ezért lenne szükségem a 485-re....
Modemen gondolkodtal mar? Nem kell feltetlen telefon modem...
Az egyszerűbb lenne, vagy hatékonyabb, vagy miért?
Mivel elektronikai körökben még nagyon amatőr vagyok, így nekem a cél az, hogy működőképes legyen és minél könnyebben meg tudjam csinálni. Az RS232-nél könnyű dolgom volt, mert kellett hozzá egy max232-es, egyszerű volt bekötni és a szimpla UART-os függvényekkel működött. Nagyobb távolság esetén milyen egyszerűbb kommunikációs formát érdemes használni?
Szia,
Ha angolul erdekel egy PIC C konyv, most letoltheto ingyen egy a Wiz-C gyarto oldalarol. Ez a PIC C compilerukre keszult konyv, de a legtobb resz az altalanos annyira, hogy bermely C forditora igaz legyen. Learn C with FED
Modemet epp erre talaltak ki, hogy nagytavolsagu es/vagy zajos vonalon at lehessen vinni adatokat. Pl az RS232-t egyik oldalon modulalja, masikon demodulalja (innen a nev: mo-dem) igy a ket vegpont RS232-kent kezeli a kommunikaciot, nem kell tudniuk arrol, hogy a koztes adatatvitel mikeppen tortent.
Elonye, hogy a dolgod leegyszerusiti, hatranya, hogy valoszinuleg dragabb megoldas, mint amit potyo ill szilva javasoltak neked.
Pontosan mi kellene ennek a megvalósításához?
Létezik valami hasonló mint a max232-es IC ? Vagy hogy nézne ki ez a dolog?
Esetleg akkor az RS485 kétirányú kommunikációhoz kérhetnék valami kicsit kis kapcsolási mintát?
Előre is Köszi!
Szerintem gondolkozz RS422-ben! A modem ide túl nagy falat, ha bérelt vonalit keresel mindkét végére, amik létező telefonvonal nélkül is össze tudnak csengeni, akkor az azért drága megoldás, ha pedig telefonvonali modemről van szó, akkor a hívási folyamat miatt le kell szimulálni egy telefonvonalat (csengetéssel, miegymással - csináltam már ilyet, de túl komoly projekt, nem ide való).
Szóval RS422 jó lesz, az, ha jól emlékszem 1200m-ig használható, differenciális jelátvitelt használ. A gond a távolsággal lehet. 30-40m távolság esetén a vezeték két végén lévő földpotenciál már eltérhet. Gondolom, a PIC-es cucc a "túlvégen" úgyis saját tápegységgel rendelkezne. Ezek miatt érdemes lenne megfontolni az elválasztott megoldást, mondjuk optocsatolókkal. Itt van egy konkrét megvalósítás: Bővebben: Link |
Bejelentkezés
Hirdetés |