Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1271 / 1318
(#) Hp41C válasza bbatka hozzászólására (») Okt 18, 2017 /
 
Lábkiosztása (és azok funkciói majdnem teljesen) megegyezik a 16C84, 16F84, 16F628(A) típusokéval.
(#) tomi52 hozzászólása Okt 23, 2017 /
 
Üdv!
Fordítgatom magamnak a DS18B20 kezelési doksiját a gugli fordítójával, mert igencsak minimális az angol tudásom.
A kérdésem a következő lenne: bár megértettem, hogy mi ez valójában, hogyan működik, de igazán kíváncsi lennék, mire lehetne ezt normális magyar szóra vagy kifejezésre fordítani: scratchpad.
A gugli elég őrült fordításokat ad rá: karcoláspad, targonca-olvasó.
(#) Ktulu válasza tomi52 hozzászólására (») Okt 23, 2017 / 1
 
Wikipedia:
Idézet:
„Scratchpad memory, also known as scratchpad, scratchpad RAM or local store. is a high-speed internal memory used for temporary storage of calculations, data, and other work in progress”

Gyors belső RAM, ami átmeneti adatok tárolásra, számítások tárolására használható.
(#) tomi52 válasza Ktulu hozzászólására (») Okt 23, 2017 /
 
Köszi!
A lényegét értettem, csak nem tudtam, hogyan mondanánk ezt magyarul.
(#) cua válasza Ktulu hozzászólására (») Okt 23, 2017 /
 
Miben kulonbozik a cache-tol?
(#) kissi válasza tomi52 hozzászólására (») Okt 23, 2017 /
 
Szia!

Nekem hozta rá a jegyzettömböt Bővebben: Link, hiszen végül is arra használja: adatok gyors tárolására !
(#) _BiG_ válasza cua hozzászólására (») Okt 24, 2017 /
 
Gondolom abban, hogy a cache mindent tárol, tehát utasításokat is, mert a "normál" processzoroknál használják a memóriaelérés gyorsításához. Szemben ennél az esetnél, ahol csak gyorsabb adattárolásra használják.
(#) tomi52 válasza kissi hozzászólására (») Okt 24, 2017 /
 
Próbáltam én is csak a szót, de nekem nem hozta. Lehet, hogy figyeli az előzményeket?
(#) Thowra hozzászólása Okt 28, 2017 /
 
Üdv!
Találkozott esetleg valaki olyannal, hogy egy 8 lábú PIC MCLR lába kimenet lett volna?
Adott egy áramkör aminél a környezet alapján PIC a mikrovezérlő (szám leköszörülve sajnos) és a MCLR (4.) lábon egy led van ellenállással GND re kötve. Úgy tudtam, hogy a MCLR csak bemenet lehet I/O ként használva.
(#) mammut válasza Thowra hozzászólására (») Okt 28, 2017 /
 
Üdv!
Igen, Pl.: PIC16F629.
Ez lehet GPIO ugyanúgy, mint a programozó lábak.
A hozzászólás módosítva: Okt 28, 2017
(#) Hp41C válasza mammut hozzászólására (») Okt 28, 2017 / 1
 
A PIC12F629 adatlapjának a Ports fejezetében a TRISIO regiszter kiosztásában ugyan szerepel a TRISIO3, de a GPIO3 sematikus ábráján már nincs meghajtó a port kivezetés felé.

A 3 állapotú meghajtót és a Vdd -nél magasabb feszültséget (Vpp :9..13V) nem szokták a PIC kontrollerekben ugyan azon a lábon megvalósítani. Főleg nem, ha a Vpp First Programming Entry módszer is használható a típusnál .
(#) kissi válasza Hp41C hozzászólására (») Okt 28, 2017 /
 
PIC16F629-et írt, azt hittem van ilyen, de nem néztem utána !
(#) Ashen16 hozzászólása Okt 29, 2017 /
 
Sziasztok!

Segítséget szeretnék kérni egy adc példaprogramra lenne szükségem asm nyelven C8051F320-ra! Ha valaki tudna egyet mellékelni, azt nagyon megköszönném!
(#) kissi válasza Ashen16 hozzászólására (») Okt 29, 2017 /
 
Szia!
Keress már másik topic-ot neki, ez nem haladó PIC-es téma !
(#) pajti2 válasza Ashen16 hozzászólására (») Okt 29, 2017 /
 
Itt első sorban a pic a téma, vagy minimum microchip-es gyártmányú mikrovezérlők. A jelzett mikrovezérlő nem ontopic.
(#) n_yálastrubadúr hozzászólása Okt 30, 2017 /
 
Jó reggelt!
Van egy 18f14k50 -em. I2C OLED 128*64 es kis kijelzővel kisérletezem. Egyedi Km/h akarok építeni a biciklimre. A TMR1-et használom aszinkron módban egy órakristállyal. Az a problémám hogy ha nem altatom el, akkor 1 nap alatt olyan fél másodpercet késik. Viszont most tesztelgetem a sleep mód áramfelvételét. 50x lefut a main és elaszik. Próbáltam INT0 megszakítással ébreszteni és simán csak a mainben is. Akárhogy csinálom szépen lassan minnél több ébresztés és annál jobban késik. De ha nem ébresztgetem, csak 1x elalszik majd csak egy 20 perc múlva keltem, akkor is szépen késik másodperceket. Referenciának a gépen frissítem az atomóra oldalt. Miért lehet ez a sleep módos elcsúszás?
(#) n_yálastrubadúr hozzászólása Okt 30, 2017 /
 
A pic egyébként egy 12Mhz-es kvarcról megy. A sleep mód előtt egy tranzisztorral muszáj voltam a kijelző földjét is elvenni, mert 5mA körül fogyasztott a DISPLAY_OFF parancs kiadása után is. Ébredéskor az lcd újra inicializálódik. Nagyon szimpatikus lenne ez így, most alvó módban a műszer a 0,01 és a 0,00 mA között ingadozik. De ez az elcsúszás érthetetlen számomra. Lehet még a kristályt újra berezgeti nem inkrementálja az óra kvarc a TMR1-et?
(#) pajti2 válasza n_yálastrubadúr hozzászólására (») Okt 30, 2017 /
 
Nem teljesen érthetőek a körülmények. Ha valami kapcsolattal atomóráról szinkronizálod, akkor előfordulhat alkalmasint max 1 sec elcsúszás, ami szoftveres tökéletlenség, de az nem fog halmozódni, és 1 másodpercbe valószínűleg nem fog összedőlni a mutatvány. Hogy annak mi köze a sebességméréshez, azt részemről nem különösebben értem. Általános esetben a kerékre erősítenek egy szupermágnest, és a vázra egy reed-relét, aztán számolgatják az impulzusokat, amit kvarc időhöz hasonlítanak. A kvarcoknak egyébként mind van valamennyi hibája. Egy kommersz, 80 ppm-es kvarccal ha órát építesz 80 ppm = 0.008% hiba, 86400 sec idő esetén + / - 6.912 sec (per nap) összeadódó hibád lehet, és az nem program hiba, hanem elektronikai tökéletlenség.
(#) Attila86 hozzászólása Nov 25, 2017 /
 
Van egy weboldal, ahol a fájljaimat (wav, html, bmp...) át szoktam konvertálni C tömbbé hogy a PIC programjába ezáltal bele tudjam tenni. Ez az: Bővebben: Link
Viszont ez az oldal sajnos már (legalábbis ma) nem jön be. Keresgéltem, de nem találtam semmi hasonlót. Ismer valaki alternatívát erre a műveletre?
(#) cross51 válasza Attila86 hozzászólására (») Nov 25, 2017 /
 
Én képekre vagy valami arduino-s bitmap konverter szoktam használni, vagy lehetőség rá a mch graphics resource converter (ez elvileg az mla-ben benne van).
Waw-ra esetleg ez jó lehet Bővebben: Link.
(#) nedudgi válasza Attila86 hozzászólására (») Nov 25, 2017 /
 
A HxD-t ajánlom.
(#) killbill válasza Attila86 hozzászólására (») Nov 25, 2017 /
 
Telepitesz egy MinGW-t (vagy eleve Linux-ot hasznalsz), es mint programozo irsz ra egy tizsoros programot a gepedre, amin dolgozol. Ennel egyszerubb megoldas nem letezik. Az mar csak hab a tortan, hogy a project Makefile-t ugy csinalod meg, hogy ha a wav vagy akarmi megvaltozik, akkor automatikusan generalja le a .c tombot belole. Vegulis azert hasznalunk szamitogepet a projekt leforditasara, hogy ne nekunk kelljen webes feluletekre feltolteni a konvertalando file-okat, nem?
(#) Attila86 válasza Attila86 hozzászólására (») Nov 25, 2017 /
 
Találtam egy programot ami ugyan ezt csinálja: Bővebben: Link
(#) benjami válasza Attila86 hozzászólására (») Nov 25, 2017 /
 
Csináltasd meg a mikrovezérlővel SD kártyára
Az alábbi példa mondjuk ARM-re készült, de némi módosítással átírható PIC-re is:
  1. // SD kártyán levö fájlokból C forrás készitése
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include "stm32f10x_conf.h"
  5. #include "systick.h"
  6. #include "Uart/uart.h"
  7. #include "Sd/ff.h"
  8.  
  9. #define  BMP_HEADERSIZE  0x36
  10. #define  BMP_FILENAMEEXT ".bmp"
  11.  
  12. #define  WAV_HEADERSIZE  40
  13. #define  WAV_FILENAMEEXT ".wav"
  14.  
  15. // csak hogy soros porton követhetö legyen a munka (törölhetö)
  16. #define  SERIALTRACING
  17.  
  18. #ifdef  SERIALTRACING
  19. #define trace_printf  printf
  20. #else
  21. #define trace_printf
  22. #endif
  23.  
  24. uint16_t Color888to565(uint8_t r, uint8_t g, uint8_t b)
  25. {
  26.   uint16_t c; c = r >> 3; c <<= 6; c |= g >> 2; c <<= 5; c |= b >> 3;
  27.   return c;
  28. }
  29.  
  30. // ----------------------------------------------------------------------------
  31. // 24bites (RGB888) bmp fájl 16bites (RGB565) C forrásra konvertálása
  32. void bmpfile_processing(char* pth, char* fn)
  33. {
  34.   struct __packed BMP_PIXEL
  35.   {
  36.     unsigned char blue;
  37.     unsigned char green;
  38.     unsigned char red;
  39.   }rgb888;
  40.   uint16_t rgb565;
  41.   unsigned int r, i, x;
  42.   FIL sfile, tfile;
  43.   char f[256];
  44.   sprintf(f, "%s/%s", pth, fn);
  45.   if(f_open(&sfile, f, FA_READ) == FR_OK)
  46.   {
  47.     for(i = strlen(f); i > 0; i--)
  48.       if(f[i] == '.')
  49.         {f[i] = 0; break;}
  50.     strcat(f, ".c");
  51.     if(f_open(&tfile, f, FA_CREATE_ALWAYS | FA_WRITE) == FR_OK)
  52.     {
  53.       trace_printf("processing:%s/%s -> %s\r\n", pth, fn, f);
  54.       f_printf(&tfile, "static const unsigned short bitmap[] = {\n");
  55.  
  56.       for(i = 0; i < BMP_HEADERSIZE; i++)
  57.       {
  58.         f_read(&sfile, &rgb888.red, 1, &r);
  59.       }
  60.  
  61.       f_read(&sfile, &rgb888, sizeof(rgb888), &r);
  62.       rgb565 = Color888to565(rgb888.red, rgb888.green, rgb888.blue);
  63.       f_printf(&tfile, "  0x%04x", rgb565);
  64.       f_read(&sfile, &rgb888, sizeof(rgb888), &r);
  65.       rgb565 = Color888to565(rgb888.red, rgb888.green, rgb888.blue);
  66.       x = 1;
  67.       for(;;)
  68.       {
  69.         if(!r)
  70.         {
  71.           f_printf(&tfile, "}\n");
  72.           f_sync(&tfile);
  73.           break;
  74.         }
  75.         if(!x)
  76.           f_printf(&tfile, "  0x%04x", rgb565);
  77.         else
  78.           f_printf(&tfile, ", 0x%04x", rgb565);
  79.         if(x >= 7)
  80.         {
  81.           f_printf(&tfile, ",\n");
  82.           x = 0;
  83.         }
  84.         else
  85.           x++;
  86.         f_read(&sfile, &rgb888, sizeof(rgb888), &r);
  87.         rgb565 = Color888to565(rgb888.red, rgb888.green, rgb888.blue);
  88.       }
  89.       f_close(&tfile);
  90.     }
  91.  
  92.     f_close(&sfile);
  93.   }
  94. }
  95.  
  96. // ----------------------------------------------------------------------------
  97. void wavfile_processing(char* pth, char* fn)
  98. {
  99. // ide beszurhato a wav átalakitása a bmp alapjait felhasználva
  100. }
  101.  
  102. // ----------------------------------------------------------------------------
  103. // végigkeresi a 'path'-ban megadott helytől kezdve az 'ext'-ben megadott kiterjesztésü fájlokat
  104. // és meghívja az 'fp'-ben megadott függvényt
  105. FRESULT scan_files(char* path, char* ext, void (*fp)(char* pth, char* fn))
  106. {
  107.   FRESULT res;
  108.   DIR dir;
  109.   UINT i;
  110.   static FILINFO fno;
  111.  
  112.   UINT el = strlen(ext);                // kiterjesztés hossza
  113.   res = f_opendir(&dir, path);          // kutatás kezdete
  114.   if (res == FR_OK)
  115.   {
  116.     for (;;)
  117.     {
  118.       res = f_readdir(&dir, &fno);
  119.       if (res != FR_OK || fno.fname[0] == 0) break;  // vége?
  120.       if (fno.fattrib & AM_DIR)         // DIR ?
  121.       {
  122.         i = strlen(path);
  123.         sprintf(&path[i], "/%s", fno.fname);
  124.         res = scan_files(path, ext, fp);// alkönyvtár tartalmának felkutatása
  125.         if (res != FR_OK) break;
  126.         path[i] = 0;                    // kilépünk az alkönyvtárbol
  127.       }
  128.       else
  129.       {                                 // file ?
  130.         if(!strcmp(ext, (char *)fno.fname + strlen(fno.fname) - el))
  131.           fp(path, fno.fname);
  132.       }
  133.     }
  134.     f_closedir(&dir);
  135.   }
  136.   return res;
  137. }
  138.  
  139. // ----------------------------------------------------------------------------
  140. int main(int argc, char* argv[])
  141. {
  142.   FATFS   fs;
  143.   FRESULT res;
  144.   char buff[256];
  145.  
  146.   systick_init();
  147.   uart_init(115200);
  148.  
  149.   res = f_mount(&fs, "", 0);            // meghajto csatolás
  150.   if (res == FR_OK)
  151.   {
  152.     strcpy(buff, "/");
  153.     res = scan_files(buff, BMP_FILENAMEEXT, bmpfile_processing); // bmp konverzio
  154.     strcpy(buff, "/");
  155.     res = scan_files(buff, WAV_FILENAMEEXT, wavfile_processing); // wav konverzio
  156.     trace_printf("\r\nEnd process\r\n");
  157.   }
  158.   while(1);
  159. }
(#) Attila86 válasza benjami hozzászólására (») Nov 26, 2017 /
 
Idézet:
„Csináltasd meg a mikrovezérlővel SD kártyára”

Ezt minden további nélkül meg tudnám tenni, de elég macerás lenne mindig oda-vissza cserélgetni a kártyát meg másolgatni az átalakítandó fájlt. Meg persze egy fix hardver is kellene hozzá amit külön meg kellene építeni. Ez hatalmas macera.
Amit linkeltem program az teljesen jó, egy hibája van hogy a sztring fájlból nyert tömb végére nem tesz 0x00-át, azt manuálisan kell a végére írni.
(#) killbill válasza Attila86 hozzászólására (») Nov 27, 2017 /
 
Tenyleg nem ertem, hogy miert nem irod meg magadnak a PC-re ezt a 10 soros C programot? A topik cime ... haladoknak. Nem egy C compiler-rol vagy sakkozo programrol van szo, hanem egy olyan egyszeru programorol, amivel a programozas megtanulasat szokas kezdeni. Es ha a kezedben van a lehetoseg, hogy a PC-re tudsz magadnak programokat irni, akkor elkepesztoen sok dolgot meg tudsz csinalni, nem vagy raszorulva masokra. Nem lesz mindig, minden feladatra egy kesz program a neten.
(#) benjami válasza Attila86 hozzászólására (») Nov 27, 2017 /
 
Miért is kellene oda-vissza cserélgetni? Egyszer felmásolod rá az összes kép és hangfájlodat (mindegy hova), bedugod a mikrovezérlős paneledre, az feldolgozza az összes fájlt (rekurzív módon bejárja az összes könyvtárat. és az összes bmp és wav fájlról elkészíti a C tömböt azonos névvel, csak 'c' kiterjesztéssel), kiveszed, berakod a PC-be és kész.
Amúgy PC-re is majdnem ugyanez lesz a program (ha parancssoros felülettel is megelégszel), legfeljebb a keresési könyvtárbejárás kezdőhelyét kell kicsit finomítani, hogy ne kelljen utána külön programot írnod, a kismillió feleslegesen konvertált C fájl letörlésére.
Mod: Annyi plusz van még ha saját programmal csinálod, hogy a fenti példa pl. átkonvertálja a 24bites bmp-ket 16bitesre (gondolom 16bites színmódban használod a kijelzőt).
A hozzászólás módosítva: Nov 27, 2017
(#) Attila86 válasza killbill hozzászólására (») Nov 27, 2017 /
 
Soha nem írtam programot PC-re, azt se tudom hogy hogyan kellene ezt elkezdeni...
(#) Attila86 válasza benjami hozzászólására (») Nov 27, 2017 /
 
Idézet:
„Miért is kellene oda-vissza cserélgetni? Egyszer felmásolod rá az összes kép és hangfájlodat”

A kép és hangfájl az rendben is van, de jellemzően inkább html fájlokat pakolok mostanában a PIC-be, Ezeket a html fájlokat pedig folyamatosan módosítgatom.
(#) killbill válasza Attila86 hozzászólására (») Nov 27, 2017 /
 
  1. #include <stdio.h>
  2.  
  3. int  main(void)
  4. {
  5.   printf("Hello, World!\n");
  6.   return 0;
  7. }
Következő: »»   1271 / 1318
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