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   931 / 1207
(#) kriszrap válasza Hp41C hozzászólására (») Ápr 18, 2017 /
 
Az mekkora baj hogy a program átváltotta pic10LF322 re pedig pic10f322 van ??
Amugy a hexa felment rá....
Lehet nem nagy info de aconfig bitek ilyen: CONFIG : $2007 : 0x3EA6
A hozzászólás módosítva: Ápr 18, 2017
(#) cross51 válasza Hp41C hozzászólására (») Ápr 18, 2017 /
 
MikroC-ben van simulator ?
(#) kriszrap válasza cross51 hozzászólására (») Ápr 18, 2017 /
 
Azt keresem.......
A hozzászólás módosítva: Ápr 18, 2017
(#) Udvari Zsombor válasza Gabó hozzászólására (») Ápr 18, 2017 /
 
Most ha a zöld a panelban, a sárga pedig negatívon, akkor folyamatosan villog a billentyűzet! Tehát: ha a citromsárgát negatívra húzom, akkor folyamatosan villog! Akkor most hogyan kössem???
(#) cross51 válasza kriszrap hozzászólására (») Ápr 18, 2017 /
 
Gondolom nem MikroICD van?
(#) _BiG_ válasza Udvari Zsombor hozzászólására (») Ápr 18, 2017 /
 
Itt egy link a PS/2-ről, illetve a billentyűzet kommunikációs protokolljáról. Mert nem ASCII kódokat fogsz kapni belőle
The PS/2 Mouse/Keyboard Protocol
(#) kriszrap válasza Hp41C hozzászólására (») Ápr 18, 2017 /
 
Igazad volt:
0x002A 0x3063 MOVLW 99
0x002B 0x0092 MOVWF PR2
PWM2DCH nem találom(

Nem, mikroC
A hozzászólás módosítva: Ápr 18, 2017
(#) nagym6 válasza Udvari Zsombor hozzászólására (») Ápr 18, 2017 /
 
(#) cross51 válasza kriszrap hozzászólására (») Ápr 18, 2017 /
 
A mikroC az IDE a MikroICD (InCircuitDebugger) a debugger elvileg MikoC-ben csak ezzel lehet debug-olni, de asszem valami COFF fájlt kell generálni és MPLAB-on keresztül tudod PICkit 3-mal is debug-ollni. De lehet egyszerűbb az "Arduino skill" rakj össze egy soros portot és írasd ki az adott értéket a PIC-el így a semminél többet fogsz tudni.
(#) Udvari Zsombor válasza nagym6 hozzászólására (») Ápr 18, 2017 /
 
Átmentem oda...
(#) Hp41C válasza kriszrap hozzászólására (») Ápr 18, 2017 /
 
Idézet:
„Nem, mikroC”

Melyik fordítóról van szó?
Mikro C -ben (ha jól tudom) a Run / Start debugger (F9) indítja a szimulációt, a Run / Step Over egy sorral előrébb megy, de nem lép bele függvénybe / eljárásba, a Step Into ugyan ez, de belép a függvénybe / eljárásba, a Step Out a függvényből / eljárásból kilépésig futtat.
Még akkor is, ha nincs Micro ICE -m....

A Run/ Disassembly mode egy ablakban mutatja a forrás sorokat és az azokból fordított assembly utasításokat. A Watch Values ablakban változókat és SFR regisztereket és bitjeit lehet felvenni egy listába, ami minden lépésnél frissít a nyomkövetés.

Ha elindítjuk az a 10F322 programot, beállítjuk a PR2 és a PWM2DCH a Watch Values ablakba, majd töréspontot állítunk be a PWM2_init(10000); és a PWM2_Set_Duty(..); után. Elindítjuk a programot. Megáll az első törésponton. Megvizsgáljuk a Watch Values abakot. Nini a PR2 -ben 99 van. Továbbindítjuk.... Megáll a második törésponton...

De ez így működik minden fejelsztő Integrated Development Environment alatt az MpLab 8 -tól az MpLab X -en (Eclipse) és a Mikro fordítók felületén keresztül a PC Micro$oft C# -jáig mindenhol.
A hozzászólás módosítva: Ápr 18, 2017
(#) nagym6 válasza Udvari Zsombor hozzászólására (») Ápr 18, 2017 /
 
Nem elküldeni akartalak, csak hátha ott van infó. Nincs esetleg a MikroC-ben kész PS/2 rutin?
(#) Udvari Zsombor válasza nagym6 hozzászólására (») Ápr 18, 2017 /
 
Nem az a probléma, a kódot elvileg már ki is írtam, viszont a fizikai bekötéshez kellene a segítség, mert mint írtam, sárga=mínusz->villog és zöld+barna=tápfesz->világít! Olyasminek kellene történnie, mint normál PC bekapcsolásakor, hogy csak egyet villanjon, utána használható legyen! És a billentyűzet csak PICcel együtt kerülhet tápfesz alá egy közös kapcsolóval, tehát a villogás kikapcsolt állapotnál is van, de a világítás csak bekapcsolt állapotnál!
(#) Gabó válasza nagym6 hozzászólására (») Ápr 18, 2017 /
 
Na már cirógatta a csőröm ez a mikroC, elővettem a notit amin ezek a progik vannak, és megnéztem. Van benne PS2 minta meg leírás. Igaz nekem mikroC PRO AVR van, de gondolom a PIC verzióba is van leírás meg tutorial.

Igaz ez AVRes tutorial kód, és UARTot használ, de bizonyíték hogy van benne, amit használhatna.

  1. unsigned short keydata = 0, special = 0, down = 0;
  2.  
  3. sbit PS2_Data         at PINC0_bit;
  4. sbit PS2_Clock_Input  at PINC1_bit;
  5. sbit PS2_Clock_Output at PORTC1_bit;
  6.  
  7. sbit PS2_Data_Direction   at DDC0_bit;
  8. sbit PS2_Clock_Direction  at DDC1_bit;
  9.  
  10. void main() {
  11.  
  12.   UART1_Init(19200);        // Initialize UART module at 19200 bps
  13.   Ps2_Config();             // Init PS/2 Keyboard
  14.   Delay_ms(100);            // Wait for keyboard to finish
  15.   UART1_Write_Text("Ready");
  16.  
  17.   do {
  18.     if (Ps2_Key_Read(&keydata, &special, &down)) {
  19.       if (down && (keydata == 16)) {        // Backspace
  20.          UART1_Write(0x08);
  21.       }
  22.       else if (down && (keydata == 13)) {   // Enter
  23.         UART1_Write('r');                  // Send carriage return to usart terminal
  24.         //Usart_Write('n');                // Uncomment this line if usart terminal also expects line feed
  25.                                             // for new line transition
  26.       }
  27.       else if (down && !special && keydata) {
  28.         UART1_Write(keydata);
  29.       }
  30.     }
  31.     Delay_ms(10);                           // Debounce
  32.   } while (1);
  33. }


(#) Hp41C válasza Gabó hozzászólására (») Ápr 18, 2017 /
 
Április 5 -én egy 18F1320 -ra épülő, letölthető Mikro C programmal ellátott pojectből indult az egész. Megtettünk egy jó nagy kört 13 nap alatt.
A hozzászólás módosítva: Ápr 18, 2017
(#) kriszrap hozzászólása Ápr 18, 2017 /
 
na 20 nál 5 PWM2DCH

255 pedig 63
(#) Gabó válasza Hp41C hozzászólására (») Ápr 18, 2017 /
 
Nagyából követem itt a történéseket, popcornnal a kezembe (Mivel PIC tere nem a világom, ezért bengaságot se akarok írni kód és egyéb szoftver téren, marad a popcorn) de elektronikai kivitelezés az ok. Amúgy most gyorsba visszatekertem kicsit, és pl hiányolom a felhúzó ellenállásokat...
(#) nagym6 válasza Gabó hozzászólására (») Ápr 18, 2017 /
 
MikroBasic Pro PIC -ben is van PS/2 rutin, akkor biztosan a C-ből sem hagyták ki. Nagyon hasonló programmal, mint amit csatoltál.
(#) Gabó válasza nagym6 hozzászólására (») Ápr 18, 2017 /
 
Azért másoltam be, mert a legtöbb ilyen programnak vannak példái, beépített rutinokkal mindennel. Majdnem csak össze kell legózni, meg kiegészíteni.
(#) Elektro.on válasza Gabó hozzászólására (») Ápr 18, 2017 /
 
Nem a beépített PS/2 rutinnal van gondja, mert az van van minden mikroelektronikás környezetben.
A kódját innen onan másolta, és egy teljesen más PIC et rendelt hozzá, hátha...
Soronként diktálták neki mit csináljon, az is nehezen ment.
A gond ott kezdődik, hogy az eddigi legkomolyabb projekte az zseblámpa javítás volt.
Olvass vissza:

Bővebben: Link
A hozzászólás módosítva: Ápr 18, 2017
(#) Hp41C válasza kriszrap hozzászólására (») Ápr 19, 2017 /
 
Mottó: Nem kell assembly ismeret a boldoguláshoz magas szintű nyelveken.
Amennyiben a PWM2_init(10000) az alábbiakat állítja be
  1. 0x002A 0x3063 MOVLW 99
  2. 0x002B 0x0092 MOVWF PR2

végkép nem értem a PWM2_Set_Duty(..) miért állítja 100% -nál (255/4)=63 -ra a PWM2DCH -t.

Addig világos, hogy a kitöltés két alsó bitje a PWM2DCL 7..6 bitjeire kerül. Ekkor a bemenő paraméternek 10 bitesnek kellene lennie, de a fentebb idézet leírás alapján csak 8 bitet kezel (255 jelenti a 100% -ot , 0 jelenti a 0% -ot).

A PR2 = 99 beállításnál a 100% -nak a PWM2DCH = 99, a 0% -nak a PWM2DCH = 0 felel meg.
A hozzászólás módosítva: Ápr 19, 2017
(#) Udvari Zsombor válasza nagym6 hozzászólására (») Ápr 19, 2017 /
 
Jó, most már rendesen felállt a billentyűzet, hogy bekapcsolt állapotban adtam rá a tápfeszt, viszont feltűnően a kontraszt csak az LCD felső sorára van hatással, ami szerintem nem jó így! És csak D4...D7 adatlábak vannak bekötve, D0...D3 szabadon lett hagyva. A kérdés az, hogy most mi van? A kontrasztnak nem az egész LCDre kellene érvényesnek lenni?
(Jó billentyűzet: zöld=plusz, sárga=mínusz, barna=data, piros=clock.)
(#) eSDi válasza Udvari Zsombor hozzászólására (») Ápr 19, 2017 /
 
Most az van, hogy az LCD nincs inicializálva.
Fut a program a PIC-en?
Jól is van beállítva minden?
A programban megtörtént az LCD inicializálása?
A hozzászólás módosítva: Ápr 19, 2017
(#) Udvari Zsombor válasza eSDi hozzászólására (») Ápr 19, 2017 /
 
Eleve az nem jó, hogy a kontraszt most csak a felső sorra van hatással! Mit csináljak még? A csupasz D0...D3 lábakat is húzzam negatívra? (Szerintem a kontraszt nem függ az incializáltságtól!)
(#) proli007 válasza Udvari Zsombor hozzászólására (») Ápr 19, 2017 /
 
Hello! Csak azt nem írtad le, hogy vannak-e már karaktaerek az LCD-n. Mert alapból az LCD egysorosra van beállítva, ilyenkor a felső sorban csak a karakter helyek négyzetei jelennek meg és így csak annak kontrasztját tudod állítani. Tehát ilyenkor még nincs inicializálva a kijelző.
A D0..D3 lábakat le lehet húzni, de ha lebegnek az sem lehet baj, feltéve hogy inicializáláskor 4-bitesre adatforgalomra van állítva az LCD.
(#) Udvari Zsombor válasza proli007 hozzászólására (») Ápr 19, 2017 /
 
Hát..., eleve karaktereket se ír, hiába nyomkodom a billentyűzetet, és a kódban pedig ki van kapcsolva a kurzor, így azt se tudom, hogy egyáltalán felállt-e az LCD!
A kódot inkább mellékelem, hátha látszik, hogy mi nem stimmel...

kód.zip
    
(#) Pali79 válasza Udvari Zsombor hozzászólására (») Ápr 19, 2017 /
 
Ha bekapcsolás után pár másodperccel is csak a felső sor kontrasztját tudod állítani akkor nem volt inicializálás vagy nem megfelelő.
(#) attika válasza Pali79 hozzászólására (») Ápr 19, 2017 /
 
Szerintem az a kód nem fordult le rendesen, vagy elérte a 2k-s határt vagy a Pic felprogramozásánál lehetett valami gebasz.
(#) Pali79 válasza attika hozzászólására (») Ápr 19, 2017 /
 
Ne nekem mond! Én szóltam előre, hogy nem fog működni...
(#) eSDi válasza Udvari Zsombor hozzászólására (») Ápr 19, 2017 /
 
Szimulátorban a hex elindul. De nem tudom mit alkottál, mert RA2 és RA3 visszaáll analóg bemenetté egy kis idő után. Az LCD a következő utasításokat kapja:
  1. Real Time     |E     |R/W    |RS     |DATA  |DATA      |Busy    |Bits  |
  2. ------------------------------------------------------------------------
  3. 0.00µs        |1->0  |0-wr   |0-cmd  |0x00  |0000xxxx  |1640µs  |8     |
  4. 33063.00µs    |1->0  |0-wr   |0-cmd  |0x30  |0011xxxx  |42µs    |8     |
  5. 44077.00µs    |1->0  |0-wr   |0-cmd  |0x30  |0011xxxx  |42µs    |8     |
  6. 55091.00µs    |1->0  |0-wr   |0-cmd  |0x30  |0011xxxx  |42µs    |8     |
  7. 66106.00µs    |1->0  |0-wr   |0-cmd  |0x20  |0010xxxx  |42µs    |4     |
  8. 77120.00µs    |1->0  |0-wr   |0-cmd  |0x2   |0010____  |0µs     |4     |
  9. 77130.00µs    |1->0  |0-wr   |0-cmd  |0x28  |00101000  |42µs    |4     |
  10. 88146.00µs    |1->0  |0-wr   |0-cmd  |0x1   |0001____  |0µs     |4     |
  11. 88155.00µs    |1->0  |0-wr   |0-cmd  |0x10  |00010000  |42µs    |4     |
  12. 99169.00µs    |1->0  |0-wr   |0-cmd  |0x0   |0000____  |0µs     |4     |
  13. 99178.00µs    |1->0  |0-wr   |0-cmd  |0x01  |00000001  |42µs    |4     |
  14. 110193.00µs   |1->0  |0-wr   |0-cmd  |0x0   |0000____  |0µs     |4     |
  15. 110205.00µs   |1->0  |0-wr   |0-cmd  |0x0F  |00001111  |42µs    |4     |
  16. 321252.00µs   |1->0  |0-wr   |0-cmd  |0x0   |0000____  |0µs     |4     |
  17. 321283.00µs   |1->0  |0-wr   |0-cmd  |0x01  |00000001  |42µs    |4     |
  18. 332333.00µs   |1->0  |0-wr   |0-cmd  |0x0   |0000____  |0µs     |4     |
  19. 332363.00µs   |1->0  |0-wr   |0-cmd  |0x0C  |00001100  |42µs    |4     |
Következő: »»   931 / 1207
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