Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   842 / 1319
(#) watt válasza chriskross hozzászólására (») Nov 21, 2010 /
 
Idézet:
„Személy szerint rühellem a külön tápos égetőket”


Sok PC-n és laptopon van vagy soros, vagy LPT port. A külön táp nem függ össze semmivel, bármilyen égető működhet USB 5V-ról, én is ilyeneket terveztem nagyrészt.
Szerintem ezt megbeszéltük.
(#) icserny válasza Lozsa hozzászólására (») Nov 21, 2010 /
 
Idézet:
„De mit takar az "e" végződés?”
A PIC18 mikrovezérlők extended módját. Ha belenézel egy ilyen linker állományba, akkor kiderül, hogy az extended módú könyvtárakat csatolja hozzá a a programhoz:
  1. FILES c018i_e.o
  2. FILES clib_e.lib
  3. FILES p18f1230_e.lib
(#) icserny válasza Lozsa hozzászólására (») Nov 21, 2010 /
 
Idézet:
„Köszi de én C-ben gondoltam... nem inline assembly-ben.”
Nézde át a PICCOLO vagy a PICula projekt első öt fejezetét, abból kiderül (legalábbis remélem...), hogy hogyan lehet ugyanazt C18-ban, illetve assemblyben megfogalmazni!
(#) szuperman válasza watt hozzászólására (») Nov 21, 2010 /
 
PIC18F2550 -est szeretnék felprogramozni. Ezt az égetőt építettem meg: http://www.hobbielektronika.hu/kapcsolasok/egyszeru_lpt_egtoaramkor...l?pg=1
És ,ha ennyire érdekel így néz ki:
http://www.kephost.com/view3.php?filename=zs1pcd8m0e4evkvk5pm0.jpg
http://www.kephost.com/view3.php?filename=mj3d6w58qmdkf3fvobkf.jpg

A vezetékek pedig szerintem elég jól láthatók. Sima vezeték ,sem nem túl vastag ,se nem túl vékony ,hosszúnak meg aztán vékképp nem mondanám őket. Viszont az LPT porthoz csatlakozó kábel 3m körül van. Ez zavarná a dolgot??
(#) watt válasza szuperman hozzászólására (») Nov 21, 2010 /
 
Idézet:
„Viszont az LPT porthoz csatlakozó kábel 3m körül van. Ez zavarná a dolgot??”

Igen, ez eléggé zavaró tényező. 60cm-nél hosszabb nem tanácsolható. Az LPT-től szalagkábel, vagy UTP kábel megfelelő, de semmiképpen nem szanaszét lógó vezetékek! Nem látom az áramkörödön a zavarszűrő kondit az IC lábánál. Csak a képen nem látszik?
Az MCLR/Vpp ellenállás rajta van a PIC-en?
(Ha te kérdeztél emailben, akkor a többi kérdésre is válaszolhatsz itt!)
(#) watt válasza (») Nov 21, 2010 /
 
Hát lehet, kicsit félreérthető volt...
Igázából már nem értem milyen lényeget várnál..
Ha a PK2 vs más égetőkre gondolsz:
Nincs értelme úgy összehasonlítani bármit, hogy melyik a jobb. Úgy van, hogy az adott feladatra használható-e, vagy sem. Ha a feladat az, hogy néhány PIC-et(kb. 100-at!), be tudjon égetni, akkor azt kell mondanom, hogy az LPT-s vagy COM-os égetőim alkalmasak a feladatra, ugyanúgy, ahogy a PK2 klónok. Sok olyan égetőt élesztettem fel, amire az volt a diagnózis, hogy nem működik az adott PC-n, pedig csak rendesen meg kellett volna építeni.
Én abban látom a lényeg másik felét, ha a felhasználói oldalt nézem, hogy ha nem képes megépíteni, bemérni, éleszteni, egy áramkört, akkor számára felesleges befektetés egy PK2. Ezzel nem azt akarom mondani, hogy szuperman erre nem képes, mert még nem adta fel, de sajnos úgy érzem az eddigiekből, hogy vannak hiányosságok a területen, amit be kellene pótolni(Nagyon sokan vannak ezzel így, ami önmagában nem szégyen és nem is baj!).
A gond az, hogy mostanában az a trend, hogy ha egy ellenállás rá van kötve a PIC lábára, akkor az ohm törvényét is a PIC miértekben kérdezik és tárgyalják ki! Ezt az égetőt is a égetős topicocban kéne levezetni, ott lenne a helye. Akkora káosz van már itt, hogy elég nehéz ezt úgy kibogozni, hogy a kérdező is értse, nem feltétlenül a kérdésével van baj, hanem a helyével. Aztán jönnek az írásból fakadó problémák. Ismered azt, hogy ahogy írsz, az vagy te. Nos, elég nehéz olyanokkal értelmes emberként tárgyalni, aki arra lusta, hogy a mondatot nagybetűvel kezdje, vagy a hogy kötőszót kiírja a h helyett stb. A mondanivaló helyes megfogalmazásáról már ne is beszéljünk.
Nem akarom folytatni, mert messzire vezet, de mind az, ami itt kijött belőlem a korábbiakban, és amit szóvá is tettél, ezek miatt történt. Persze könnyű azoknak, akik betévednek ide, néha beleszólnak a témába, akár jól, akár helytelenül, mert nem látják a folyamatot, és nem érti miért akad ki valaki valamire. Ilyenkor jön az, hogy ez meg mit oltja le szegény kérdezőt? Vannak itt szabályok, bár tudjuk, vagy kénytelenek vagyunk (?) tudomásul venni, hogy a szabályokat nem magyar embereknek találták ki. Ezért is tartunk ott ahol, de ez végképp nem ide tartozik, de valahol még is...
Lehet, hogy az lenne a megoldás, ha tényleg én lépnék le, és maradna rátok a válaszolás nemes feladata, mert egyre kevesebb a kedv és a türelem...
(#) Moderátor hozzászólása Nov 21, 2010
 
A következő off-nál és beszólásnál warnt adok!
(#) messer hozzászólása Nov 22, 2010 /
 
Jó reggelt mindenkinek. Dspic-el kísérletezem, c-ben. Kérdésem annyi volna. hogy icd2-vel debuggolom, picKit2-vel adom be a soros jeleket. Valamiért nem akarja venni az adatokat. Úgy csináltam hogy az icd-2-vel nem lépésenként hanem természetesen folyamatos futásban futtattam a programot, és egy töréspontot helyeztem el a soros megszakításban. Valamiért nem dolgozza fel az adatokat, szerintetek az időket befojásólja az icd2, és ezért nem működik jól az uart modul?
(#) trudnai válasza messer hozzászólására (») Nov 22, 2010 /
 
Nem kellene, de konnyu kideriteni: Vedd le az LCD2-t es tegyel a megszakitasba egy olyat, hogy kigyujt egy LED-et, vagy akar 4,5,..,8 bites szamlalo LED sor egy portra es azt novelgeted minden egyes megszakitaskor, es akkor kiderul mi a helyzet valos kornyezetben...
(#) messer válasza trudnai hozzászólására (») Nov 22, 2010 /
 
Elméletileg akkor icd2-vel tudna működni a dolog? Azért lenne jó életre keltenem ebben a formában a dolgot, mert jó lenne látni a regiszterek értékeit is.
(#) watt válasza messer hozzászólására (») Nov 22, 2010 /
 
Az ICD2 nem befolyásol ilyen dolgokat, csak ahogy írtad, törésponton tud megállítani, vagy lépésenként végrehajtani, ami végül is majdnem ugyanaz.
Ha csak annyit szeretnél, hogy a beérkező soros adat megszakítást okozzon és ide helyeztél egy töréspontot, akkor annak működnie kell, ha megfelelőek a beállítások. Ellenőrizd le, hogy a PK2 megfelelő bauddal nyomja az adatot(pl. PC-n, BrayTerminallal) és azt is, hogy ugyanerre van-e beállítva a PIC-is!
(#) messer válasza watt hozzászólására (») Nov 22, 2010 /
 
Az oldaladon valami bejelentett támadóhelyet reklamál a firefox, a program amit adtál az nem ttl szintű jeleket vár ugye? A pickit2-ből meg az jön ki, sajnos most nincs kéznél max ic.
(#) pixels válasza messer hozzászólására (») Nov 22, 2010 /
 
Idézet:
„egy töréspontot helyeztem el a soros megszakításban”

Ha debug alatt több bájtot is kap a PIC, elképzelhető, hogy megtelik a soros port puffere? Mert ha igen, ez okozhat problémát.

Bray terminal itt is elérhető
(#) watt válasza messer hozzászólására (») Nov 22, 2010 /
 
A program az egy terminal program... A PC az viszont nem TTL jeleket vár, kell egy MAX232 az illesztéshez.(Ezt mindenképpen be kell szerezd, ha soros kommunikációval szeretnél foglalkozni!).
A firefoxal kapcsolatban nem tudok mit mondani, nekem az explorer nem kiabál. Régebben is volt valaki, aki ilyet jelzett, te vagy a második a 46ezer látogatóból.
(#) watt válasza pixels hozzászólására (») Nov 22, 2010 /
 
A program folytatásakor igen, de a megszakításnak meg kell történnie.
(#) vicsys válasza watt hozzászólására (») Nov 22, 2010 /
 
Én vagyok a harmadik!
(#) lidi válasza watt hozzászólására (») Nov 22, 2010 /
 
Azt hiszem talán én is jeleztem ezt korábban valakinek. Amúgy nem árt komolyan venni a dolgot. Ezek a károkozók ugyanis ha jelen vannak a gépeden, akkor ftp-n keresztül megfertőzik a weboldaladat is. Szkripteket helyeznek el benne, ami támadó kódot tölt le a látogatók gépére. És rád is veszélyt jelent, pl ha szoktál online bankolni. Nekem most nem riaszt, de ha van időd nézd át a weboldalad forrását, nincs-e beszúrva valahová rejtett iframe, vagy egyéb csunyaság amit nem te írtál.
(#) messer válasza watt hozzászólására (») Nov 22, 2010 /
 
Nem pc jelekkel akarok dolgozni, sajnos most nem tudok beszerezni max-ot mert vidéki vagyok mivel van tárolós scope-om így könnyedén le tudom ellenőrizni, hogy a pic kit jó sebességgel küldi-e az adatot.Azt találtam ki, hogy a start bit időtartamát megnézem, csak azt kéne tudnom, hogy adott baudhoz mekkora start bit szélesség tartozik.
(#) szilva válasza messer hozzászólására (») Nov 22, 2010 /
 
Küldj folyamatosan "U" karaktereket (0x55), és azt nézd szkópon! 1 start bit, 8 adatbit, paritásbit nélkül és 1 stopbittel ez egy folyamatos négyszögjelet fog eredményezni, aminek a frekvenciája pont a bitsebesség fele (mert minden bit az előző bit ellentettje lesz a folyamban). Így akár egy frekimérős DVM-mel is lehet ellenőrizni, hogy tényleg jó-e a beállított UART sebesség. Ha van tárolós szkópod, akkor elég egy-egy "U" karaktert megnézni, abban minden jelváltás közt pont egy bitidő van.
(#) messer válasza szilva hozzászólására (») Nov 22, 2010 /
 
A mérések azt mutatják, hogy a pickit2 jól küldi az adatokat. A leg bosszantóbb az, hogy nem is küldök adatod mégis bekövetkezik a megszakítás valamiért.beteszem a kódot hátha láttok valami hibát amiért itt bénázok.
  1. #include <30F2010.h>
  2.  
  3. //#device ICD=TRUE                              // For using the debugger, un-comment
  4.  
  5. #FUSES NOWDT                    //No Watch Dog Timer
  6. #FUSES XTL                      //XT Crystal Oscillator mode with 4X PLL
  7. #FUSES NOCKSFSM                 //Clock Switching is disabled, fail Safe clock monitor is disabled
  8. #FUSES WPSB1                    //Watch Dog Timer PreScalar B 1:1
  9. #FUSES WPSA1                    //Watch Dog Timer PreScalar A 1:1
  10. #FUSES NOPUT                    //No Power Up Timer
  11. #FUSES BROWNOUT                 //Reset when brownout detected
  12. #FUSES BORV20                   //Brownout reset at 2.0V
  13. //#FUSES LPOL_HIGH              //Low-Side Transistors Polarity is Active-High (PWM 0,2,4 and 6)
  14.         //PWM module low side output pins have active high output polar
  15. //#FUSES HPOL_HIGH              //High-Side Transistors Polarity is Active-High (PWM 1,3,5 and 7)
  16.         //PWM module high side output pins have active high output polarity
  17. //#FUSES NOPWMPIN               //PWM outputs drive active state upon Reset
  18. #FUSES MCLR                     //Master Clear pin enabled
  19. #FUSES NOPROTECT                //Code not protected from reading
  20. #FUSES NOWRT                    //Program memory not write protected
  21. #FUSES DEBUG                    //Debug mode for use with ICD
  22. #FUSES NOCOE                    //Device will reset into operational mode
  23.  
  24. #FUSES ICSP1                    //ICD uses PGC1/PGD1 pins
  25. #use delay(clock=4000000)
  26.  
  27. #use rs232(UART1,baud=300,parity=N,bits=8,stream=UART)
  28.  
  29.  
  30.  
  31. #INT_RDA
  32. void analyzepacket_isr(){
  33. int8 inputchar;
  34. inputchar = getc();
  35.  
  36. }
  37.  
  38. void main()
  39. {
  40. enable_interrupts(INT_RDA);
  41. enable_interrupts(INTR_GLOBAL);
  42. while(true){
  43. delay_ms(200);
  44. }
  45. }
(#) watt válasza lidi hozzászólására (») Nov 22, 2010 /
 
Köszönöm a jelzést!
Privátban tudnátok segíteni mit és mivel lehetne, érdemes megnézni? Egyébként valami lehet, hogy van, mert a kezdő lapom folyamatosan felülíródik, ez pedig eddig nem volt így. Köszönöm!
(#) icserny válasza messer hozzászólására (») Nov 22, 2010 /
 
Hát ez így elég "érdekesen" néz ki!
  1. #INT_RDA
  2. void analyzepacket_isr(){
  3.     int8 inputchar;
  4.     inputchar = getc();
  5. }


Bölcsebb volna C30 fordítót használni (hogy jobban lássuk, mi mire fordul...), s az interruptus kezelésnél az USART egység regisztereit kellene olvasni, s természetesen a megszakításkérő jelzőbitet is törölni kell.

Erős a gyanúm, hogy a kódodban összekeveredett az interrupt a nem interruptosan kezelt (és a főprogramból hívandó) könyvtári függvénnyel.
(#) messer válasza icserny hozzászólására (») Nov 22, 2010 /
 
Nem rég óta tértem át c-re egyenlőre nem váltanék fordítót mert így is sok a problémám.Egyenlőre ccsc vel próbálok haladni elég jó a help-je. Mit szólnál, ha így kezelném le a megszakítást.
  1. void serial_isr() {
  2.    int8 t;
  3.  
  4.    t=getc();
  5.    (itt törölmém a megszakítás jelző bitet)
  6. }
  7. [/quote]
(#) icserny válasza icserny hozzászólására (») Nov 22, 2010 /
 
Megadom magam, a gyári EX_SISR.C demóban is getc() függvényhívással megy a kiolvasás (ami szerintem elég nagy overhead-del jár...).

A fenti mintaprogram PIC16F és PIC18F-re van felkészítve, nem tudom, hogy dspic esetén mit kell módosítani.
(#) icserny válasza messer hozzászólására (») Nov 22, 2010 /
 
CCS-hez nem értek, de szerintem nem egészséges dolog az ISR-en belül definiált lokális változóba rakni az eredményt. Annyit ér, mint kéménybe korommal felírni...

Globális (statikus) változóba rakd az adatot. Nem tudom, CCS-nél mi a divat, de az interrupton módosított változóknak egy volatile módosítót is illik megadni.
(#) messer válasza icserny hozzászólására (») Nov 22, 2010 /
 
Igen ezt a demót használtam én is és nem akar összejönni a dolog.Ez a példa program tartalmazza a dsPic-et is csak éppen nem csinálja a dolgát....
(#) Balázs 1.3 JTD hozzászólása Nov 22, 2010 /
 
Sziasztok. Van egy push és egy pop makróm megszakításokhoz de nem vagyok benne biztos, hogy működik. Valaki megerősítene ebben?

  1. push            macro
  2.                 movwf           w_temp
  3.                 swapf           w_temp, f
  4.                 swapf           STATUS, w
  5.                 movwf           status_temp
  6.                 endm


  1. pop             macro
  2.                 swapf           status_temp, w
  3.                 movwf           STATUS
  4.                 swapf           w_temp, w
  5.                 endm


Üdv: Balázs
(#) pixels válasza Balázs 1.3 JTD hozzászólására (») Nov 22, 2010 / 1
 
Jónak tűnik. Annyi kikötés van, hogy a temp regiszterek olyan helyen legyenek, hogy bármely bankból elérhetőek legyenek. pl a pic16f628-ban a 0x70 - 0x7f címtartományban
(#) Balázs 1.3 JTD válasza pixels hozzászólására (») Nov 22, 2010 /
 
Értem. Köszönöm

Minden jót!
(#) tardis válasza messer hozzászólására (») Nov 22, 2010 /
 
1. Szerintem a "while" előtt is törölni kellene az interrupt bitet
2. A megszakításodban a lokális változót végül is nem használod fel. Ezt a fordítód kioptimalizálhatja úgy, mintha ott sem lenne. HI-Tech C csinált már velem ilyet.
3. A getc használata nem biztos, hogy jó megoldás megszakításban. Meg kellene nézni a forráskódját, vagy a lefordított asm, map, stb file-odat.
Következő: »»   842 / 1319
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