Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   263 / 1320
(#) watt válasza mammut hozzászólására (») Aug 16, 2008 /
 
Akkor sajnos a kék LED-ek nagyobb nyitófeszt kérnének, mint ami rájuk jut. Az égető sem ad ki 5V-ot és a 374-esek sem kapcsolják ki a táp teljes feszültségét, így összejöhet akár 1..2V esés is. Sajnos nincs ötletem a probléma megoldására 5V-os táp esetében.
Más tápról kéne járatni a HC-ket, pl. 7V. Így talán az illesztés is megmaradna a PIC felé. De ezt jól át kell gondolni, nehogy meghaljon valami!

szerk!
Sajnos most nézem, hogy a HC csak 6V max feszt visel el. Talán az is elég lenne. Természetesen a PIC-et továbbra is 5V-ról kell járatni.
(#) mammut válasza watt hozzászólására (») Aug 16, 2008 /
 
Asszem jó felé tapogatsz! Sajnos sn74ls374-ek mennek a körben, nagyon valószínű hogy nem jut elég fesz a ledeknek, most kipróbálom csak 1 kék led vezérléssel az áramkört hátha beindul.

Ohh lássatok csodát, a 4.sor4. ledje felvillant teljes fényerővel!
Keresek valami megoldást hogy lehetne megvezérelni normálisan, vagy változtatok a programon, hogy egy másik frame-en működjenek a kék ledek.
(#) vtnagy válasza mammut hozzászólására (») Aug 16, 2008 /
 
Tudom, nem vagyok valami jártas még etéren, de, ha tranzisztoros megoldást használnál a LED-ek meghajtására?
Szerintem megvalósítható, de ezt valaki majd megmondja
(#) vtnagy válasza vtnagy hozzászólására (») Aug 16, 2008 /
 
Azt hiszem kicsit félreérthető lett, így pontosítanám: (szerkeszteni már nem tudtam)
Szóval a 74HC374 Q0..Q9 kivezetéseire kötnéd a tranzisztor bázisát (nem tudom, kell-e ellenállás közé), és ez mondjuk egy 10-12V-os feszt adna a LED-ekre, a PIC és az IC-k meg 5V-ról lennének meghajtva
(#) mammut válasza vtnagy hozzászólására (») Aug 16, 2008 /
 
Gondolkodtam a tranzisztormezős megoldáson is, amit írtál , még számolgatok egyet-kettőt utána lehet, hogy letesztelem azt a megoldást.
(#) potyo válasza mammut hozzászólására (») Aug 16, 2008 /
 
Csak szólnék, hogy a 74HC374 és a 74LS374 nem teljesen kompatibilisek egymással, ezért nem világítanak a kék ledek. A jobboldali chip helyére (amelyik a ledek anódját hajtja) mindenféleképpen 74HC374 kell. Az alsó helyén nagyjából mindegy, melyik van.

De ez az egész tervezés több hiányosságot rejt magában. A ledek közös kivezetését (amit így most nem tudok, hogy egyszerre egy sor, vagy oszlop világít), azt nem elég ilyen chippel meghajtani, oda mindenféleképpen tranzisztoros meghajtás kell. 20mA-es ledek esetén ott akár 160mA is folyhat, míg egy HC chip 20mA körüli áramot tud adni illetve húzni. Az LS valamivel többet tud húzni, de annak is sok a 160mA. Anódoldalra az LS teljesen alkalmatlan, a HC korlátozott mértékben ugyan, de alkalmas kisáramú ledekhez. Nagyáramú ledeknél kevés az impulzusokban folyó 20mA, tehát tranzisztoros meghajtás kell az anódoldalra is.
(#) watt válasza potyo hozzászólására (») Aug 16, 2008 /
 
Ez az áramtúlterhelés már nekem is feltűnt, de gondoltam ha működik az eredeti példány, akkor nem szólok...
(#) mammut válasza watt hozzászólására (») Aug 16, 2008 /
 
Az az igazság, hogy az eredeti példányt csak piros "gyenge" ledekkel imitálják. Gondolom azokkal nem sok baj lehet, nem úgy, mint 4 féle színnel. De azt hiszem nem fogok vele sokáig szórakozni, a színeket oszlopokba rendezem és beállítom majd a végleges panelen a fényerőkhöz megfelelő ellenállásokat, meg beteszem a tranzisztormezőket.
(#) watt hozzászólása Aug 16, 2008 /
 
Lenne egy tervem, de csak futólag formálódik, kíváncsi lennék szerintetek meg lehet-e oldani és ha igen milyen módszerrel.

Egy 16bites AD-t kéne meghajtani SPI-n keresztül 1MIPS-el. Minden 16bit más, de előre letárolt és megfelelő algoritmus szerint változnak. (emelkedő szinusz jeleknek megfelelő adatok (1Hz...20KHz) előre deffiniált lépésekben.)

A cél PIC, egy 16F690 lehetne 20MHz-es oszcival elvileg 5Mbps SPI sebesség elérhető.
A kérdés az, hogy ki lehet e vinni az adatokat ilyen tempóval az SPI regiszterébe úgy, hogy közben a PortINT -en keresztül vezérelném a változás kérést. (megszakítanám a jelsorozatot és fogadnám az új parancsot, ami a freki tartományt adná meg. A megadás után a PIC a kérésnek megfelelő adatsort nyomna ki a START jel után.
A másik kérdés a szinusz jelalak táblázatát hová lehetne letárolni és hogyan lehetne ezt a különböző frekiknek megfelelően kiléptetni az SPI regiszterébe?
(#) szilva válasza mammut hozzászólására (») Aug 16, 2008 /
 
A nagy fényerejű LED nem attól nagy fényerejű, hogy egy feszültségenerátor jellegű kimenetre csak úgy rákössük! A soros, áramkorlátozó ellenállást egy LED elől semmiképp nem szabad elhagyni.

Valószínűleg így annyira megterheli a kimenetet a LED, hogy a kimeneti latch vagy magától visszaesik 0-ra, vagy következő r-m-w utasításnál már 0 szintűnek látszik és ezért az is íródik vissza.
(#) szilva válasza mammut hozzászólására (») Aug 16, 2008 /
 
Meg kellene mérni a 374-ek kimenetét, gyanítom, hogy a magas és alacsony állapota közti különbség nem elég a LED-nek.
(#) szilva válasza watt hozzászólására (») Aug 16, 2008 /
 
Ha jól értelmezem, akkor D/A meghajtásáról lenne szó, és ennek felhasználásával egy programvezérelt szinuszgenerátorról.

A sebességekre hirtelen nem tudok mit mondani, de úgy gondolom, hogy a jelalakot leíró táblázat csak valahol a programmemóriában képzelhető el, mert külső eszközből ilyen sebességgel reménytelen elővenni. A programmemória pedig nem valami túl nagy, szóval lehet, hogy az meg emiatt nem alkalmas. Ráadásul a programmemória olvasásakor mintha kimaradna 1 gépi ciklus, nem tudom, pl. az SPI-be hogy szól bele.

Lehet, ilyen alkalmazáshoz érdemes lenne valamelyik kicsi dsPIC-et elővenni, esetleg valamelyik nagyobbat, külső, párhuzamos elérésű memória felhasználásával, amiben induláskor kiszámolja a szinuszalakot, utána már csakolvasgatni kell belőle.
(#) potyo hozzászólása Aug 17, 2008 /
 
Múltkor szó volt itt a 18F1xK50 jelzésű USB-s chipekről. Nemtudom, figyeltétek-e, de a PGC és PGD lábakat a D+ és D- lábakra rakták, ezzel (szerintem) megnehezítve a fejlesztést...
(#) Thowra hozzászólása Aug 17, 2008 /
 
Üdv mindenkinek!
Ismét szeretném a segítségeteket kérni. Épp egy egyszerű, saját fejlesztésű számológépen ügyködök, a progi C ben íródik, az elképzelés ez:
Progi megnézi, hogy meg lett e nyomva egy gomb vagy sem (sima if), ha nem goto eleje, ha igen akkor a megfelelő részre ugrana. A bevitt számokat változókba tárolnám, később lehet tömbbe ha rájövök hogy kell . az eredményt egy 16 karakteres lcd n íratnám ki. a főprogi:
pl: 12+96= sz1=1 sz2=2 sz3=9 sz4=6 (változókba tárolt számok, mind int típusú szerintem). szam1=sz1 összefűz sz2 szam2=sz3 összefűz sz4. jel=+ eredmeny=szam1+szam2. eredmeny kiírása és örülök .
A problémáim: Összefűzés hogy oldható meg? Pascalba volt olyan, hogy procedure, ott megírtam egy feladatot és pl goto val odaugrottam, ez itt hogy lehetséges? Harmadik problémám, hogy nem tudok osztani pl a=8 b=2 c=a/b printf(lcd_putc,"= %d",c); itt nem ad rendes értéket, amúgy minden integer. Még valami, tizedestörtet sehogy se kezel, lehet hülye kérdés de melyik változó típust javasoljátok? Tud esetleg valaki valami értelmes C vagy asm olvasnivalót? Az ittenieket átrágtam a-z is de nem lettem sokkal okosabb Bocs, hogy hosszú lett
(#) menyus hozzászólása Aug 18, 2008 /
 
Sziasztok!

Tudnátok segíteni? A PIC16F628A adatlapja szerinti példa alapján próbálgatom az EEPROM ba írást, de nem megy. Az MPLAB az eeprom területre írandó értékre (AAh) errort jelez.

Az adatlap példája írásra:

BSF STATUS, RP0 ;Bank 1
BSF EECON1, WREN ;Enable write
BCF INTCON, GIE ;Disable INTs.
MOVLW 55h ;
MOVWF EECON2 ;Write 55h
MOVLW AAh ;
MOVWF EECON2 ;Write AAh
BSF EECON1,WR ;Set WR bit
;begin write
BSF INTCON, GIE ;Enable INTs


Lehet hogy hibás az adatlap? Esetleg tudna valaki egy működő példa rutint mutatni erre a típusra?

Előre is köszönöm
(#) szilva válasza menyus hozzászólására (») Aug 18, 2008 /
 
Nem hibás, csak kicsit pongyola néhol (illetve nem tudom, milyen assemblerhez készültek a példák, a hexa konstansokkal mindig baj van). Az MPLAB az "AAh"-t címkének értelmezi, nem számnak, ilyen címkéd meg nincs, nyílván erre panaszkodik. Írj helyette "0AAh"-t vagy "0xAA"-t, vagy "H'AA'"-t, amelyik jobban esik.

A másik, ami ebben a példában nem feltétlenül követendő, az a GIE bittel történő matatás. Ha nem használ a programod interruptot, akkor nem kell letiltani előtte és engedélyezni utána a GIE-t (főleg nem az engedélyezést). De ezt Neked kell tudni, hogy a programod többi része hogyan működik, az adatlapban elég jól le van írva, hogy mi miért és hogyan történik.
(#) NickE válasza Thowra hozzászólására (») Aug 18, 2008 /
 
Nem ártott volna megírni, hogy melyik C fordító, de általánosságban egészen biztos, hogy van a könyvtári függvények között stringeket összefűző.

Pascalban és C -ben goto. Faxa fiam, kettes. Minden normális könyv tripla felkiáltójellel duplán bekeretezve 36-os betűmérettel írja, hogy ne használd.

C-ben és jellemzően C alapú nyelvekben a / egész osztást jelent. Tehát 5/2=2
Vagy float -ra alakítod (float) a explicit alakot használva, vagy rákényszeríted, hogy alakítsa át. a/1.0 implicit verzió. Az előző szebb.
(#) szabi_o válasza watt hozzászólására (») Aug 18, 2008 /
 
Nem tudom, mennyire ragaszkodsz a 16 bites felbontáshoz, de javasolnám az Analog Devices DDS sorozatát. Nagy felbontással közel perfekt szinusz jel állítható elő velük, soros (SPI), egyes példányoknál párhuzamos vezérléssel.
(#) menyus válasza szilva hozzászólására (») Aug 18, 2008 /
 
Egyelőre nem használok megszakítást, a példát egy az egyben másoltam ki az adatlapból ezért van benne a megszakítás engedélyezés / tiltás. Köszi a választ, megpróbálom újra 0xAA val.
(#) p3n3m hozzászólása Aug 18, 2008 /
 
Jónapot mindenkinek!
Nekem a graphic pictail plussal van egy kis gondom.A probléma abból adódik hogy nemtudom hogyan kezjek neki a programozásának.. A help alapján megcsináltam a projectet (beleraktam azt a sok header meg source fájlt) aztán írtam a mainbe valamit, de mindig hibát ír ki.Tudna valaki segíteni?
Előreis köszönöm:Katona Ábel
(#) potyo válasza p3n3m hozzászólására (») Aug 18, 2008 /
 
Szerintem kevés a grafikuskártya memóriája a gépedben
(#) Laller válasza menyus hozzászólására (») Aug 18, 2008 /
 
Szia!

Tapasztalatom szerint az MPLAB nem eszi a bötűvel kezdődő hexa számokat ebben a formában AAh.
Próbáld meg így: h'AA'
Remélem segít, üdv: Lajos
(#) menyus hozzászólása Aug 18, 2008 /
 
Az volt a baj amit írtatok, köszi. Egyébként van olyan utasítás ami az egész eeprom tartalmat törli? Vagy ez is csak címenként működik?
(#) potyo válasza menyus hozzászólására (») Aug 18, 2008 /
 
Csak egyesével lehet törölni.
(#) Thowra válasza NickE hozzászólására (») Aug 18, 2008 /
 
Üdv!
CCS t használok. A goto tudom, hogy nem túl elegáns megoldás de itt más nem jut eszembe. Sajnos jó ideje hajtok normális, alapszint alattról kezdő C s könyvet ami használható a CCS nél is, sajnos nem sok eredménnyel .
(#) menyus válasza potyo hozzászólására (») Aug 18, 2008 /
 
köszönöm!
(#) watt válasza szabi_o hozzászólására (») Aug 18, 2008 /
 
Köszi, ismerem őket, kb. 5 ezer/db! Csak akkor választanám, ha nincs olcsóbb megoldás.
(#) potyo válasza Thowra hozzászólására (») Aug 18, 2008 /
 
Azért pár forráskódot végignézhettél volna, hogy hogyan szokás függvényt hívni... Talán NickE tud ajánlani valami jó könyvet C-re, én nem könyvből tanultam.
(#) Sanyi87 hozzászólása Aug 18, 2008 /
 
hali
Segítség kellene. Szóval pic16f628-ast programoztam,
de valamiért nem működik és most így a 2. napon azt vettem észre mintha nem tenne különbséget a fordító vagy a pic a PORTB,5 és a PORTB,6 között
Mit lehet ilyenkor tenni? Infra árzékelőket figyeltem ezen a lábakon és egy primitív progival csak az egyiket figyeltem erre a másikra is ugyan úgy működik .
Talán meghalt a pic? De ez sem lehet hisz valami él benne... kösz
(#) kobold válasza Sanyi87 hozzászólására (») Aug 18, 2008 /
 
Vagy át tud "beszélni" a két láb (a körülöttük lévő elektronika miatt) egymásra, vagy van valami bibi a programmal. Ennél kicsit több infó is jó lett volna.
Következő: »»   263 / 1320
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem