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   1189 / 1189
(#) Bakman válasza oregharcos hozzászólására (») Jan 23, 2023 / 2
 
Ha jól értem, neked ilyesmire van szükséged:
  1. char jatek = 0;
  2.  
  3. void balroljobbra(void) {
  4.     LED = 1;
  5.     Delay_nyg(150);
  6.     for (i = 0; i < 7; i++) {
  7.         LED = LED << 1;
  8.         Delay_nyg(150);
  9.     }
  10. }
  11.  
  12. void jobbrolbalra(void) {
  13.     LED = 128;
  14.     Delay_nyg(150);
  15.     for (i = 0; i < 7; i++) {
  16.         LED = LED >> 1;
  17.         Delay_nyg(150);
  18.     }
  19. }
  20.  
  21. void odavissza(void) {
  22.     LED = 1;
  23.     Delay_nyg(150);
  24.     for (i = 0; i < 7; i++) {
  25.         LED = LED << 1;
  26.         Delay_nyg(150);
  27.     }
  28.     for (i = 0; i < 6; i++) {
  29.         LED = LED >> 1;
  30.         Delay_nyg(150);
  31.     }
  32. }
  33.  
  34. void szerteszet(void) {
  35.     LED = 8;
  36.     Delay_nyg(150);
  37.     for (i = 0; i < 4; i++) {
  38.         LED = LED >> 1;
  39.         Delay_nyg(150);
  40.     }
  41.     LED = 16;
  42.     Delay_nyg(150);
  43.     for (i = 0; i < 4; i++) {
  44.         LED = LED << 1;
  45.         Delay_nyg(150);
  46.     }
  47. }
  48.  
  49. void nygfigy(void) {
  50.  
  51.     if (PORTB.F0 == 0) {
  52.         jatek = 10;
  53.     }
  54.     if (PORTB.F1 == 0) {
  55.         jatek = 11;
  56.     }
  57.     if (PORTB.F2 == 0) {
  58.         jatek = 12;
  59.     }
  60.     if (PORTB.F3 == 0) {
  61.         jatek = 13;
  62.     }
  63.  
  64. }
  65.  
  66. void main(void) {
  67.  
  68.  
  69.     while (1) {
  70.  
  71.         nygfigy();
  72.  
  73.         switch (jatek) {
  74.  
  75.             case 10:
  76.                 balroljobbra();
  77.                 jatek = 0;
  78.                 break;
  79.  
  80.             case 11:
  81.                 jobbrolbalra();
  82.                 jatek = 0;
  83.                 break;
  84.  
  85.             case 12:
  86.                 odavissza();
  87.                 jatek = 0;
  88.                 break;
  89.  
  90.             case 13:
  91.                 szerteszet();
  92.                 jatek = 0;
  93.                 break;
  94.  
  95.         }
  96.  
  97.  
  98.     }
  99. }
(#) oregharcos válasza don_peter hozzászólására (») Jan 23, 2023 /
 
Üdv. Don_Peter! Köszönöm a segítő választ és, hogy foglalkozol vele! Ha időm engedi kidolgozom részletesen úgy, hogy értető legyen és majd felrakom a programot átnézésre. Nagy-nagy köszönet!
(#) oregharcos válasza Bakman hozzászólására (») Jan 25, 2023 /
 
Üdv. Bakman! Nagyon köszönöm a segítséget, ez egy jól átlátható program! Majd beszámolok, hogyha sikerül megoldani.
A hozzászólás módosítva: Jan 25, 2023
(#) don_peter hozzászólása Kedd, 17:57 /
 
Srácok volt itt anno egy srác vagy több is nem tudom, aki tudott segíteni assembler programozásban. Akkor egy M68K-ra akartam írni egy delay rutint.

Most akadt egy problémám és sanszos itt előbb kapok rá választ mint más topikban.
Nagyon egyszerű lesz ígérem..
  1. move.l #$2410, a0
  2.     move.b (a0)+, d1

Kérdésem pedig az ami a csatolt képen is látszik, miért nem kerül bele a 10 D0 regiszterbe?
Előre is köszi.

md8.PNG
    
(#) icserny válasza don_peter hozzászólására (») Sze, 9:58 /
 
Nem akarok hülyeséget mondani, de nem azért, mert nem az a0 regiszter tartalmát másolod, hanem az általa megcímzett memóriából veszel elő egy bájtot?
Bővebben: Link
A hozzászólás módosítva: Sze, 9:58
(#) don_peter válasza icserny hozzászólására (») Sze, 11:00 /
 
De igen, közben rájöttem a balgaságomra..
Köszi.
Következő: »»   1189 / 1189
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