Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   1136 / 1203
(#) gabilow válasza Bakman hozzászólására (») Okt 13, 2020 /
 
Köszi,már próbáltam de mindig egy előre definiált karakter jön be.
(#) Bakman válasza gabilow hozzászólására (») Okt 13, 2020 /
 
Kis türelmet, közben leesett (és töröltem is a hozzászólást), hogy az IC-ben előre definiált karakterekről van szó.
(#) Bakman válasza gabilow hozzászólására (») Okt 13, 2020 / 1
 
Ha minden igaz, az alábbiakat kell módosítani:
  1. seg7R_Val = %11111111
  2. csere erre:
  3. seg7R_Val = %00001111
Továbbá:
  1. seg7R_Val = seg7Print_Store
  2. Case Else
  3. ;seg7R_Val = seg7Print_Store
  4.  
  5. Kiegészítés ezzel:
  6.  
  7. seg7R_Val = seg7Print_Store
  8. Case 88, 120 ; X, x = °
  9. seg7R_Val = 99
  10. Case 89, 120 ; Y, y = C
  11. seg7R_Val = 78
  12. Case Else
  13. ;seg7R_Val = seg7Print_Store
Az a baj, most hirtelen nem találom, az IC melyik irányból számolja a szegmenseket számjegyeket. Ha nem jól működne, akkor az első módosításnál az egyeseket és a nullákat cseréld fel (%00001111 helyett %11110000). Ha az ötödik, hatodik, hetedik illetve nyolcadik számjegyre megpróbálsz X vagy Y karaktert írni, akkor azok helyett ° jel és C betű jelenik meg. Legalábbis remélem.

A %11110000 részben a nulla kikapcsolja, az egy pedig bekapcsolja adott számjegyre az IC-be épített kódolást. Lásd adatlap, Decode-Mode regiszter.
A hozzászólás módosítva: Okt 13, 2020
(#) gabilow válasza Bakman hozzászólására (») Okt 13, 2020 /
 
Köszi,ezt kipróbálom.
(#) gabilow válasza gabilow hozzászólására (») Okt 13, 2020 /
 
Hát,nagyon köszönöm,nem jöttem volna rá. Első képnél %11110000 volt,de a megoldás:%11110011.. Mégegyszer nagyon köszönöm.
Bocsánat,nem magamnak szántam,természetesen Bakmannak.
A hozzászólás módosítva: Okt 13, 2020
(#) gabilow válasza Bakman hozzászólására (») Okt 13, 2020 /
 
Még azt kérdezném, hogy a nagy"C" kódja(78) hogy jött ki? A KarakterMatik a "fok"-ra 99 dobott ki az oké, de a "C"-re 57-et. Meg az ASCII kódja is 67. Kösz.

003.JPG
    
(#) Bakman válasza gabilow hozzászólására (») Okt 13, 2020 /
 
C: 01001110 (bin) = 78 (dec)

A bitek az alábbi szegmenseket jelölik: pont, a, b, c, d, e, f, g

Vastagon kiemelve a bekapcsolt szegmensek, felette láthatod a hozzá tartozó biteket.

7seg.jpg
    
(#) gabilow válasza Bakman hozzászólására (») Okt 13, 2020 /
 
Köszönöm, igy már értem. Jó éjszakát, mindenkinek!
(#) usane válasza Bakman hozzászólására (») Okt 13, 2020 / 1
 
A kis y javíandó, ha esetleg azt használná nem a nagyot.
Copy-paste hiba

Case 89, 121 ; Y, y = C
(#) gabilow válasza usane hozzászólására (») Okt 13, 2020 /
 
Igazad van, én is észrevettem de azt szokták mondani, hogy csak a kis ember tart rendet a zseni a káoszban is eligazodik. Ezt arra értettem akinek címezted.Minden jót!
(#) Hp41C válasza Bakman hozzászólására (») Okt 14, 2020 /
 
Jól elkerülte a figyelmemet...
(#) sima55 hozzászólása Okt 19, 2020 /
 
Üdvözlök mindenkit!
Én az elektronika világának a mechanikai részét kedvelem nagyon, éppen ezért a programozásban abszolút nem vagyok jártas. A 12F683 tanítható ic átprogramozásában keresek egy hozzáértőt, aki módosítani tudná a programját vagy teljesen törölni és csak egyetlen funkciót telepíteni. Ez az ic egy led driver-t vezérel, a kapcsoló gyors, kb 1 mp-es nyomogatásával alacsony, közepes, magas, extra fényerő... ha legalább 3 mp-ig nyomva tartom és utána 3 mp szünet, akkor az utoljára, a memóriájában maradt fényerőn kapcsol be. Ezt szeretném módosítani, hogy akármilyen gyorsan és szünetekkel nyomkodom, mindig max. fényerőn kapcsoljon be. A kapcsoló a táp, lámpa negatívját kapcsolgatja, nincs "fő" kapcsoló meg mód választó csak egy...
Lehet ez így nagyon kevés infó, de mint mondottam a programozáshoz analfabéta vagyok. Ha bárki tudna segíteni ebben, lehetőleg Pest megyében, akkor azt nagyon szívesen venném. Ha kevés az információ amit írtam, szívesebben venném telefonon folytatni, mert nagyon ritkán jutok gép elé, sokat vezetek.
Köszönettel Laci
(#) usane válasza sima55 hozzászólására (») Okt 19, 2020 /
 
Ha nincs meg a forráskódja akkor csak újraírni lehet. Mit jelent az, hogy tanítható?
A hozzászólás módosítva: Okt 19, 2020
(#) Pali79 válasza usane hozzászólására (») Okt 19, 2020 /
 
Idézet:
„Ha nincs meg a forráskódja akkor csak újraírni lehet.”
Hát nem egészen... Ha ki tudod olvasni belőle, akkor a hex-et át lehet fordítani assambly-re és tudod módosítani. Persze ha nagyon hosszú a kód akkor nem egyszerű feladat, de nem lehetetlen.
(#) Bakman válasza usane hozzászólására (») Okt 19, 2020 /
 
Valószínűleg a kérdező magára az IC-re értette miszerint újraírható, programozható.
(#) sima55 válasza Bakman hozzászólására (») Okt 19, 2020 /
 
Így van, köszönöm a kisegítést, nekem teljesen mindegy, hogy valaki újraírná, vagy egy teljesen új ic-re új programot ír, egy a lényeg, csak egy mód (fokozat) legyen rajta. Mint mondottam ehhez analfabéta vagyok, ezért kérek itt segítséget.... van meglévő kézzel fogható driver-em is, ha esetleg kellene kiolvasni belőle valamit.
(#) Bakman válasza sima55 hozzászólására (») Okt 19, 2020 /
 
Maga a program nem egy nagy durranás, viszont kelleni fog egy kapcsolási rajz vagy jó minőségű fényképek a NYÁK mindkét oldaláról és egy mérés, milyen jellel van vezérelve a kapcsolóelem az általad óhajtott maximális fényerőn.
(#) sima55 hozzászólása Okt 19, 2020 /
 
Ez gondolom így kevés....
(#) Peet19 hozzászólása Okt 19, 2020 /
 
Sziasztok!

Mi a baj az alábbi kóddal? A rand() -al nem stimmel valami? Ha kiveszem a kódból akkor lefut rendesen hiba nélkül, de ha ott van akkor hibát jelez.
  1. //megszakításkor lefutó függvény
  2.  void myHighISR(void){
  3.    
  4.     /* Ha Timer0 okozta a megszakítást */
  5.      if(INTCONbits.T0IF){
  6.         // Eltelt 1ms
  7.         INTCONbits.T0IF = 0;   // A tulcsordulást jelző bitet 0-ra állítom
  8.         TMR0 = 131;            // Timer0 beállítása hogy honnan induljon.
  9.         t0_cnt++;              // 1ms -onként léptetem a számlálót
  10.         if(t0_cnt >= 1000){
  11.             // Eltelt 1s
  12.             t1 = 65511 + ( rand() % 10 ); // Beállítom az új random frekvenciát
  13.         }
  14.      }
  15.    
  16.     /* Ha Timer1 okozta a megszakítást */
  17.     if(PIR1bits.TMR1IF){
  18.         PIR1bits.TMR1IF = 0;           // A tulcsordulást jelző bitet 0-ra állítom
  19.         GPIObits.GP5 = ~GPIObits.GP5;  // A kimeneti láb szintjét megfordítom.
  20.         TMR1 = t1;                     // Timer1 beállítása hogy honnan induljon.
  21.     }
  22.    
  23.  }


Be van includolva az stdlib.h. Ha jól tudom abban van a rand definíciója.
A hozzászólás módosítva: Okt 19, 2020
(#) usane válasza Pali79 hozzászólására (») Okt 19, 2020 /
 
Csak legyen olyan mazochista aki összebogarássza a regisztereket.
(#) usane válasza Peet19 hozzászólására (») Okt 19, 2020 /
 
Ez melyik fordítóval?
(#) Bakman válasza Peet19 hozzászólására (») Okt 19, 2020 /
 
Mi a hibaüzenet? Milyen kontroller?
(#) Tasznka válasza Peet19 hozzászólására (») Okt 19, 2020 /
 
Nem kellene oda ,hogy meddig is rand(0xff) -oljon?.
(#) nagym6 válasza usane hozzászólására (») Okt 19, 2020 /
 
Létezik egy hex-ből assemblerbe visszafordító program, nem találom.
Neve :Hex to Asm PIC Dis-assembler vagy valami ilyesmi.
Lehet, a mai picekhez már nem jó.
(#) Peet19 válasza usane hozzászólására (») Okt 19, 2020 /
 
Mplabx xc8 a fordító.

Bakman: 12f675 és a hibaüzi a következő:
Idézet:

::: advisory: (2049) C99 compliant libraries are currently not available for baseline or mid-range devices, or for enhanced mid-range devices using a reentrant stack; using C90 libraries
Non line specific message::: error: (1359) no space for ___lmul parameters
(908) exit status = 1


Van még pár link meg szöveg ha kell bemásolom azt is csak marha hosszú.
(#) usane válasza Peet19 hozzászólására (») Okt 19, 2020 /
 
Szerintem kellene egy srand is ami inicializálja a random generátort.
(#) Peet19 válasza Tasznka hozzászólására (») Okt 19, 2020 /
 
Elvileg meg van határozva a MAX_RAND. De lehet igazad van, kipróbálom.
(#) usane válasza nagym6 hozzászólására (») Okt 19, 2020 /
 
Amikor én néztem pár éve csak olyanok voltak amik a változóneveket regiszterekben adták vissza. Na egy kicsit nagyobb program esetén bogarászd össze azokat a regisztereket.
Lehet, hogy azóta csináltak olyat is ami ad valami nevet neki és összepárosítja.
(#) usane válasza Peet19 hozzászólására (») Okt 19, 2020 /
 
Nem kell semmi a randba, a %10 határozza meg, hogy 0 és 10 között lesz a véletlen szám.
A "C" szerint kell egy srand. Nem hiszem, hogy a microchip ezt kivette volna.
Bővebben: Link
A hozzászólás módosítva: Okt 19, 2020
(#) Peet19 válasza usane hozzászólására (») Okt 19, 2020 /
 
Bent van a main előtt az int rand(void);
Eddig nem is volt semmi gond, mert a main -ben még a while előtt egy változónak értéket adok vele t1 = 65511 + ( rand() % 10 );
és simán generált egy random számot, de ha a megszakítás rutinjában van ahogy fentebb látható, akkor viszont hibát dob ki. Ezt nem értem. Minden változót és függvényt globálisként deklaráltam.
Mi lehet a baj?
Következő: »»   1136 / 1203
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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