Fórum témák
» Több friss téma |
A hozzászólás módosítva: Máj 8, 2017
És az miért van 100ms nél tökjö fényes de 1ms nél pedig halványabb.??
Igen,fel kell menni 7 bitig.Ahogy elnézem,nem tudod eltüntetni,mert feltölti a maradék helyet fix méretig.Nincs formázási lehetősége,mint pl. a sprintf-nek. Bár picit furi,hogy 6 biten konvertál. Elnézve a leírását a mikroc-nek,ennek a konvertálásnak Int-ben kellene mennie,ami 32k-ig jó Link
Próbáld ki a temp,vartemp -et unsigned int -ként. Sajna annyira nem ismerem a mikroC-t,és nem is jön be.Jobban szeretem én megírni a dolgaimat,főleg úgy,hogy akkor tudom,hogy mit is csinál. Amúgy van sprintf a mikro c-ben ,azzal nem lenne jobb? pl: sprintf(t,"%u",temp); Link
Szia!
Nem néztem meg a programodat, a fényerőt a LED be/kikapcsolás aránya határozza meg! Az szokott a gond lenni, hogy a kikapcsolás ideje ( amíg az egyik üzemmódot kikapcsolod, átállítod a másik képre és újra bekapcsolod!) az annyi, amennyi ( pl. x), ehhez kell viszonyítani a bekapcsolás időt! Ez azt jelenti, hogy az arány 1 ms-al --> fényerő= 1ms/(1ms+x), míg 100 ms-al --> fényerő=100ms/(100ms+x). Mind a kettő kisebb 1-nél, de a második nagyobb hányadost eredményez! Azaz törekedj arra, hogy az átkapcsolási időhöz képest minél hosszabb legyen a bekapcsolási idő (ez minden LED-es MUX üzemmódnál igaz!), persze a megfelelő sebesség mellett! Remélem érthető volt a leírásom így hajnalban A hozzászólás módosítva: Máj 9, 2017
Köszi a segítséget, meg fogom próbálni
Én is gondoltam különben már az sprintf-re, csak azt nem tudom, hogy az LCD mennyire eszi meg. De majd kipróbálom így, mindenesetre lehet váltanom kéne valamilyen más nyelvre, mert kezdem a mikroc korlátjait látni..... Tudnál ajánlani esetleg valamit?
Sziasztok,
Egy olyan kérdéssel fordulok hozzátok, hogy a PIC-en a nem használt kivezetéseket hova csatlakoztassam? Vagy hagyjam szabadon? Én le szeretném kötni GND-re, persze ezeket bemenetre állítottam. Szakszerűen hogy kell kezelni ezeket a nem használt lábakat? Gondolom nem jó, ha lebeg..
Nyugodtan hagyhatod lebegni. Nem kell lekötni testre sem. Ha nem állítod be a programban, akkor alapból bemenet lesz.
Nem.
Állíthatod kimenetre, akkor nem annyira gáz, de bemenetet mindig fix potenciálon kell tartani. A hozzászólás módosítva: Máj 9, 2017
Miért nem mindegy milyen potenciálon van, ha nem kérdezed le a programban?
CMOS bemeneteket nem hagyunk szabadon:
1 - Érzékenyek a statikus töltésre, hozzáérése tönkremehetnek, 2 - Lebegés közben az átmeneti feszültség tartományba (az alacsony és a magas logikai szint közötti feszültség) hatására a bemeneten levő mindkét (az N-MOS és P-MOS) tranzisztor vezet, így nagyobb áram tápáram alakul ki a bemeneti körben, 3 - Ha ez a láb véletlenül a MCLR, a statikus töltés miatt programozási módba is beléphet a kontroller. Megoldás: 1 - A nem használt lábakat ellenálláson a Vss -ra vagy a Vdd -re húzni (MCLR -t a Vdd-re), 2 - A nem használt I/O lábakat kimenetnek beállítani.
Hát én már rengeteg áramkört terveztem, de sosem kötöttem sehova a szabad lábakat. Működik mind. Nem is látom sok értelmét egy 44 vagy egy 100 lábú kontrollernek a szabad lábait bekötni.
De mindegy, akkor be kell kötni. Elfogadom. Csak ne vitatkozzunk.
Nem kell bekötni, csak kimenetnek beállítani. Kicsit felületesen olvastad.
Idézet: „Szia! Nem néztem meg a programodat, a fényerőt a LED be/kikapcsolás aránya határozza meg! Az szokott a gond lenni, hogy a kikapcsolás ideje ( amíg az egyik üzemmódot kikapcsolod, átállítod a másik képre és újra bekapcsolod!) az annyi, amennyi ( pl. x), ehhez kell viszonyítani a bekapcsolás időt! Ez azt jelenti, hogy az arány 1 ms-al --> fényerő= 1ms/(1ms+x), míg 100 ms-al --> fényerő=100ms/(100ms+x). Mind a kettő kisebb 1-nél, de a második nagyobb hányadost eredményez! Azaz törekedj arra, hogy az átkapcsolási időhöz képest minél hosszabb legyen a bekapcsolási idő (ez minden LED-es MUX üzemmódnál igaz!), persze a megfelelő sebesség mellett! Remélem érthető volt a leírásom így hajnalban” Ha minden igaz nem szabadna fényerőt veszíteni Kérlek nézd meg a kódot:
Tedd már fel az egész programot egyben...
A Kérdésed körülbelül olyan, mintha mutatnál egy liter vizet a Yukon -ból és megkérdezed merre keressek aranyat.
Az újabb pic-eknél van normálisabb emi védelem (összes bemenet vágva van diódával a vss és vdd felé, és egyébként is st minden), de a régebbieknél még nem volt olyan.
Ameddig régebbi Pic-eket használsz,addig maradhat a Mplab 8.92+valamelyik C-fordító,vagy ha újabb a Pic,akkor valamelyik XC.
Ameddig lehet kerülöm az Mplab X-et,mert oda sok idő kell,ameddig megszokja az ember,bár van 1-2 jó dolog benne is,a sok hibán túl . Annyi a hátránya,nekem az előnye,hogy nincs benne minden előre megcsinálva(8.92).Vagyis neked kell manuálisan megírni a függvényeket,pl:lcdre kiírás,soros port,stb. De szerintem jobb ha ezzel szenvedsz az elején,és megérted a működését,mintha csak gyári függvényeket használnál,amiknek mindig van valamilyen korlátja,amibe eléggé hamar bele lehet ütközni.
... bár kétlem....
Idézet a "tegnap" megjelent PIC32MK adatlapjából: DS60001402D Idézet: „2.8 Unused I/Os Unused I/O pins should not be allowed to float as inputs. They can be configured as outputs and driven to a logic-low state. Alternatively, inputs can be reserved by connecting the pin to VSS through a 1k resistor and configuring the pin as an input.” Pedig sokszáz lába van... Ha elég biztos vagy a programban és be tudod kötni, elé egy ellenállás az összesnek. De ugyan ez a formula benne van a PIC32MX, PIC32MZ, PIC32MM, dsPIC33EP, dsPC33FJ, PIC18FxxJxx, PIC18FxxKxx adatlapokban is. Azért ezek inkább az új típusok közé tartoznak. Bővebben: Link Vajon miért árulják antisztatikus csövekben, a drágábbakat egyesével antisztatikus csomagolásban? A hozzászólás módosítva: Máj 9, 2017
Mondanám, hogy add oda fogdosni hölgyismerőseidnek, de sajnos a nylon alapú ruhák már kimentek a divatból, pedig rengeted alkatrész tettek tönkre...
A hozzászólás módosítva: Máj 9, 2017
Off:
Volt régebben vita arról, hogy a nem használt TTL bemeneteket be kell -e kötni. Egy személyes tapasztalat: Megbíztak, hogy egy Európa kártyákból felépített számítógép miért "száll el", ha CP/M rendszert futtat és miért nem, ha másmilyent. A másmilyen rendszer javarészben EPROM memóriából futott. Megvizsgálva a kártyákat és a hibát kianalizálva megállapítható volt, hogy a RAM memóriából hibás kódot olvas be néha a CPU kártya. A RAM memória történetesen egy D-RAM alapú kártya volt, ami a frissítést és a memória hozzáférést átlapolta. Tele volt TTL flip-flop -okkal, aminek a nem használt RESET és CLEAR bemenetei nem voltak bekötve. Egy másik, ugyan azt a kapcsolást megvalósító, de a 4 rétegű nyomtatást kihasználva az összes nem használt bemenetet fix szintre kötő memória kártyával a hiba nem jött elő sohasem. Apró vezetékdarabokkal az említett nem használt lábakat magas szintre kötve, a készülék megjavult. Soha többet nem volt probléma a CP/M futásával.
Még egy technikai kérdés:
A 4. oldalon lévő ábra szerint kötöttem be az ICSP-t. A MCLR-t én letiltottam MPLAB-ban, így RA3 bemenetnek használható. Mondjuk nem használom... fel húztam VCC-re egy 10K-val. Az ábrán látható megoldást érdemes használni? Miért jó ha a tápfeszültség bekapcsolásakor a kondi által meghatározott ideig Reseteli a kontrollert? A dióda a PIC-et védi, de láttam megoldást hogy a felhúzó ellenállással párhuzamosan volt egy inverz dióda is, ami a kikapcsoláskor gyorsan kisüti a kondit. Törekszem a lehető legkevesebb alkatrészt felhasználni, kérlek világosítsatok fel!
Nekem sose okozott problémát, hogy nem volt ott az a 100n és dióda (egyiknél se 16F, 18F, 24F, 32F), ha jól gondolom (majd egy jártasabb megerősít vagy megcáfol) a bekapcsolási tranziens ellen véd.
A hozzászólás módosítva: Máj 9, 2017
Egy kicsit elavunl már az a leírás. Nem kell csak egy 10k a Vdd felé.
Segítséget szeretnék kérni.
MPLAB X-et - XC8 (v1,41) ben szeretnék fordítani egy programot PIC18F4520-ra. I2C-t is használnék. Ha beirom hogy <include i2c.h> akkor ilyen fájlt nem talál. Én sem találok ilyet sehol. Viszont így az I2C konstansok és függvények viszont nem fordulnak le. (Pl. StartI2C() ; StopI2C() ; stb.) Hogy kell ezt a megoldani? Köszönöm!
A függvények forrásai a <XC8_telepítési_mappa>\sources\pic18\plib\i2c\ -ban találhatók.
A .h állományok pedif a <XC8_telepítési_mappa>\include\plib\ mappában.
Kód
Ha egyszinten 1ms várok akkor teljesen jó .. ez lenne a megoldás vagy máskép kénne? |
Bejelentkezés
Hirdetés |