Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   572 / 849
(#) Massawa válasza sargarigo hozzászólására (») Dec 7, 2019 /
 
Nem akartam ilyen mélyre menni. Valoban az van, hogy van néhány byte ami minden mást kizár, a többi meg egyszerüen összeadodik. Ahogy a kapu is irta, talán az a legegyszerübb, ha minden beolvasott byteot összehasonlitok azzal a néhány kizároval és ha azonos a korábbiakat átirom az ujjal. Minden más esetben egyszerüen logikailag összeadom. ("or" bit szinten).

Most már caak egy aprobb trükköt kell kitalálni, hogy a két MSB bittel ne foglalkozzon, mert azok függetlenek a dologtol.

Van még egy aproság. A bemenetek impulzus jellegüek, azaz alapbol minden bemenet magas szinten van (0xFF). Ezt az állapotot is ki kell zárni, hogy ne irja át a korábban beolvasott bytet. Csak akkor kezdödjön az összehasonlitás és az átirás vagy hozzáadás, ha legalább egy bit a 0-5 bitek közül 0-ra megy. Még gondolkodom , hogy azt a maradék két bemenetet (bit MSB 6,7) egyáltalán használjam-e, lehet, hogy nem is fog kelleni, de még nem tudom. Az egyszerüsiteni a dolgot, mert azokat fix szintre köthetném.
Na majd holnap kiprobálom.
(#) sargarigo válasza Massawa hozzászólására (») Dec 7, 2019 /
 
Ezeket bitenkénti ÉS kapcsolattal ki tudod szűrni. Pl. 0b01010100 & 0b00011111 eredménye 00010100 lesz (ha el nem írtam). Ahol nulla bitet állítasz be a vizsgálatnál, azt kimaszkoltad, nem fog számítani a továbbiakban.
0xFF is egy feltétel, ha a változód értéke nem 0xff, akkor mehet a tesztelés.
szerk: elírtam.
A hozzászólás módosítva: Dec 7, 2019
(#) Massawa válasza sargarigo hozzászólására (») Dec 8, 2019 /
 
Kb igy gondolom, de a bemeneten egyszerre csak 1 bit lehet a byteban 0 értékü, azaz lehet 0bxx11 1110 és mondjuk 0bxx11 0111 aminek az eredöje 0bxx11 0110 kell, hogy legyen.
De például ha az elsö beolvasott byte 0bxx11 1110 majd jön egy 0bxx11 1011 annak az eredöje csak az utolso byte lehet azaz 0bxx11 1011. ( Az xx bitekkel még nem tudom mi lesz, pillanatnyilag nincs funkciojuk, igy azokat most ignorálni kell ( valoszinü állandoan HIGH-n lesznek.)
Na megyek egy kis hardwaret drotozni meg egy bemeneti segédpanelt, hogy tudjam az asztalon szimulálni az állapotokat.
Addig is köszönöm a segitséget.
A hozzászólás módosítva: Dec 8, 2019
(#) GPeti1977 válasza Massawa hozzászólására (») Dec 8, 2019 /
 
Lehet mostanában olyan programozható logikai IC ket kapni mint a 16V8, egyszerű olcsó programozóval meg windowsos programozófelülettel?
(#) Zsolt32 hozzászólása Dec 8, 2019 /
 
Sziasztok!

Arduino témában teljesen kezdő vagyok, ezért szeretnék érdeklődni. Kinéztem egy Starter Kitet, mi a véleményetek erről? Megéri megvenni ennyiért? Esetleg van olcsóbb javaslatotok, kevesebb tartozékkal? Köszönöm előre is a segítséget.
(#) icserny válasza Zsolt32 hozzászólására (») Dec 8, 2019 / 1
 
Ízlések és pofonok...
Például ez: Tanfolyami 60 napos készlet (UNO)
Nem mellékesen ez az "Arduino 60 nap alatt" ingyenes tanfolyamhoz lett összeállítva.
(#) proba válasza Zsolt32 hozzászólására (») Dec 8, 2019 / 1
 
Ha az olcsóság a cél, Kínából a panel 1500 , próbapanel 1000, vezeték 1-2000 ft, lcd 600 . A többi körítést meg ízlés szerint olyat rendelsz amilyet akarsz. A kész csomagoknak az előnye, mindenből ad egy kis ízelítőt. Kipróbált tesztelt kapcsolásokon, és a hozzá tartozó programokon keresztül bemutat mindent, nem neked kell összevadászni. Attól is függ honnét indulsz, ha már van némi elektronikai, programozói fogalmad, fiókban némi alkatrész, akkor csomag nélkül is könnyen meg lehet tanulni , akár egy ingyenes TAVIR-os tanfolyam segítségével is.
(#) asrock válasza Zsolt32 hozzászólására (») Dec 8, 2019 / 2
 
Ithon is megteheted töredékéért!
Bővebben: Link
Tudok magyar tan anyagom és könyvek pdf küldeni...
A hozzászólás módosítva: Dec 8, 2019
(#) Massawa válasza GPeti1977 hozzászólására (») Dec 8, 2019 /
 
Nem tudom. Soha eddig nem futottam ilyesmivel össze.
(#) GPeti1977 válasza Massawa hozzászólására (») Dec 8, 2019 /
 
Találtam, az Atmel által fejlesztett most már Microchip oldalról letölthető Wincupl
Bővebben: wincupl
Az Atmel által gyártott ATF, ATV PLD - khez lehet benne szerkeszteni programot.
Csak olcsó programozót nem találok ami a mai gépekkel usb n működne, csak egy régi forrásfájlt találtam kapcsolással, igaz az elnec Beeprog programozó ismeri de az meg nem olcsó hobbi kategória
(#) Massawa válasza GPeti1977 hozzászólására (») Dec 8, 2019 /
 
Nem tudom, én ezekkel nem foglalkozom.
Az AVR procikhoz minden megvan és az utobbi idöben még 2 gyorstalpalot is elvégeztem az Arduinobol ( eddig csak ASM-ben programoztam a procikat).
Igy most egy NANO-t probálok rákenyszeriteni, hogy azt tegye amit akarok.

Igy sajnos nem tudok segiteni.
(#) GPeti1977 válasza Massawa hozzászólására (») Dec 8, 2019 /
 
Nem is kell
(#) Bell válasza mateatek hozzászólására (») Dec 8, 2019 /
 
Nagyon köszönöm, hogy ennyit dolgoztál vele!
De amire szükség van még, az az SPI, a soros port és a delay, így ez nem biztos, hogy működőképes lesz.
Azt hiszem, másik panelra lesz szükség.
(A 3-as lábon alapból megvan a 980 Hz, azt talán át lehetne tenni másik lábra.
Egyébként a tízes lábon csak nagyon pici jel van, de nem tudom szkóppal nézni., csak egy piezoval hallgatom.)
Még egyszer köszönöm!
(#) Kovidivi válasza Bell hozzászólására (») Dec 8, 2019 /
 
"Azt hiszem, másik panelra lesz szükség" - szerintem nem.
(#) Pulyka válasza Zsolt32 hozzászólására (») Dec 8, 2019 / 1
 
Szia.
Nem rossz az a starter kit, szerintem jó döntés.
Elindulni biztos, hogy el tudsz vele az Arduino világában, de iszonyú hamar ki fogod nőni.
(#) mateatek válasza Bell hozzászólására (») Dec 8, 2019 / 1
 
Ha a 4-es timert frankón vágnám, akkor minden frankó lenne ennél a panelnél is. A 16 bites timereknek pedig nincsen az összes lába kivezetve.
Az én eddigi tudásommal ez van. De azért majd ráerőlködök arra a 10 bites 4-es timerre.
Én általában LGT8F328P-t használok, és abban nincsen ilyen 10 bites csoda.
(#) Zsolt32 válasza Pulyka hozzászólására (») Dec 8, 2019 /
 
Az utolsó hozzászólásra válaszolok, de köszönöm szépen mindenkinek a segítséget. A TávIR-os készlet nagyon tetszik és jóval olcsóbb, én ezt nem is találtam meg. A készlet jobban tetszik, mint egyesével összevadászni, így biztos nem marad ki semmi. Még informálódok kicsit a témban, de sokat segítettek, köszi.
(#) Massawa válasza Massawa hozzászólására (») Dec 9, 2019 /
 
Összeállitottam egy táblázatot ahol az egyes kombináciok viszonyát látni.
0.... átirja az elözöt
1.....hozzáadja az elözöhöz

A táblázatban nincs az alaphelyzet amikor a byte tartalma 0xFF, akkor nem csinál semmit csak szkenneli a többi portot.
Minde LU egy byte.

Xxx. LU1. LU2. LU3. LU4. LU5. LU6
LU1. - 0. 0. 1. 1. 1
LU2. 0. - 0. 0. 1. 1
LU3. 0. 0. - 0. 0. 0
LU4. 1. 0. 0. - 0. 0
LU5. 1. 1. 0. 0. - 0
LU6. 1. 1. 0. 0. 0. -

A képen a HW egy része valamint a tesztelö modul, ahol szimulálni tudom a bemeneteket.

IMG_4330.JPG
    
(#) tbarath válasza Zsolt32 hozzászólására (») Dec 9, 2019 /
 
A készletekben az a jó, hogy megkapsz egy tananyagot és hozzá "mindent" egy szép dobozban. És az a rossz, hogy 3x-10x annyiba kerül, mintha magadnak összevadászod.
Az alza.hu-s készlet alkatrészeinek reális ára (ebay/hazai kisker):
- az Uno 1e Ft
- a breadboard és a kábelek 1e Ft
- kijelző 500 Ft
- a 2 optó 150 Ft, a 2 FET 300 Ft
- a végén a tranyók, kondik, diódák, ellenállások és LED-ek ára kb. 5 Ft/db (szumma 500 Ft kb.)
- a többi cucc pedig hasra ütve kb. 300 Ft/db áron lehet be lehet szerezni.
(#) asrock hozzászólása Dec 9, 2019 /
 
Adafruit_SSD1306 könyvtárból hogy lehet kikapcsolni a Adafruit logot?
splash.h tartalmának hex törlése nem segít (hangyás képet) jön elő oledre 1s re ha betölt az kijelző még akor is ha teljesen törlöm a kijelzőt ezekel a parancsokat!
Hogy lehet kikapcsolni splash.h ne vegye figyelembe?
  1. display.display();
  2. display.clearDisplay();
(#) Bell válasza mateatek hozzászólására (») Dec 9, 2019 /
 
Egy nagyon naiv kérdés:
Van arra lehetőség, hogy a "dual slope" PWM-eket "single slope"-ra állítsuk?
Ezzel megduplázódna a 480 Hz-es frekvencia.
(#) Pulyka válasza Zsolt32 hozzászólására (») Dec 10, 2019 /
 
Van még ilyen is, ilyen is.
Tudok még javasolni relé modult is, pl. ilyet. ..de egy ilyen vezérelhető LED szalagból is egy csomó minden kihozható, ami csak fénykigyó.
Ha már unod a vezetékeket, és ki-be ragosgatni a tüskéket, elgörbül, stb, vehetsz egy ilyen sorkapcsot is, bár ez a kisebbik fajtából való.
Jó szórakozást.
(#) mateatek válasza Bell hozzászólására (») Dec 10, 2019 /
 
Attól nem fog. Sőt.
(#) Norbi779 hozzászólása Dec 10, 2019 /
 
Sziasztok. Hasonló menüt szeretnék létrehozni, viszont nekem ezt egy .h fájlba kéne megoldanom.
Ha így írom:
  1. class Display {
  2. public:
  3.   Display();
  4. private:
  5.   int pageCount;
  6.   void pageClock();
  7.   void pageRelay();
  8.   void pageTemp();
  9.   void (*pages[])() = { pageClock, pageRelay, pageTemp };
  10. };

akkor az alábbi hibaüzenetet kapom:
Idézet:
„lib\Display\Display.h:12:56: error: cannot convert 'Display::pageClock' from type 'void (Display:()' to type 'void (*)()'
lib\Display\Display.h:12:56: error: cannot convert 'Display::pageRelay' from type 'void (Display:()' to type 'void (*)()'
lib\Display\Display.h:12:56: error: cannot convert 'Display::pageTemp' from type 'void (Display:()' to type 'void (*)()'”


Ha konstruktorba akarok neki értéket adni így:
  1. class Display {
  2. public:
  3.   Display();
  4. private:
  5.   int pageCount;
  6.   void pageClock();
  7.   void pageRelay();
  8.   void pageTemp();
  9.   void (*pages[])();
  10. };

  1. Display::Display() {
  2.    pageCount = 2;
  3.    (*pages[])() = { pageClock, pageRelay, pageTemp };
  4. }

Akkor az alábbi hibaüzenetet kapom:
Idézet:
„lib\Display\Display.cpp:7:12: error: expected primary-expression before ']' token
(*pages[])() = { pageClock, pageRelay, pageTemp };
       ^”


Valaki tudna segíteni, hogy hogyan tudnám ezt megoldani?
(#) zaza99 hozzászólása Dec 10, 2019 /
 
Sziasztok!
Vettem egy 320x240 es SPI IL9341 kijelzőt de csak fehéren világít és hatalmas áramfelvétele van.
Bekötöttem úgy is hogy csak 1k volt sorban az adatkábelekben és fesz osztómódban is 470Ω és 1k segítségével hogy 3.3v legyen a vezérlés.
Mi lehet a gondja?
  1. /***************************************************
  2.   This is our GFX example for the Adafruit ILI9341 Breakout and Shield
  3.  
  4.   Check out the links above for our tutorials and wiring diagrams
  5.   These displays use SPI to communicate, 4 or 5 pins are required to
  6.   interface (RST is optional)
  7.   Adafruit invests time and resources providing this open source code,
  8.   please support Adafruit and open-source hardware by purchasing
  9.   products from Adafruit!
  10.  
  11.   Written by Limor Fried/Ladyada for Adafruit Industries.
  12.   MIT license, all text above must be included in any redistribution
  13.  ****************************************************/
  14. #define ILI9341_BLACK       0x0000  ///<   0,   0,   0
  15. #define ILI9341_NAVY        0x000F  ///<   0,   0, 123
  16. #define ILI9341_DARKGREEN   0x03E0  ///<   0, 125,   0
  17. #define ILI9341_DARKCYAN    0x03EF  ///<   0, 125, 123
  18. #define ILI9341_MAROON      0x7800  ///< 123,   0,   0
  19. #define ILI9341_PURPLE      0x780F  ///< 123,   0, 123
  20. #define ILI9341_OLIVE       0x7BE0  ///< 123, 125,   0
  21. #define ILI9341_LIGHTGREY   0xC618  ///< 198, 195, 198
  22. #define ILI9341_DARKGREY    0x7BEF  ///< 123, 125, 123
  23. #define ILI9341_BLUE        0x001F  ///<   0,   0, 255
  24. #define ILI9341_GREEN       0x07E0  ///<   0, 255,   0
  25. #define ILI9341_CYAN        0x07FF  ///<   0, 255, 255
  26. #define ILI9341_RED         0xF800  ///< 255,   0,   0
  27. #define ILI9341_MAGENTA     0xF81F  ///< 255,   0, 255
  28. #define ILI9341_YELLOW      0xFFE0  ///< 255, 255,   0
  29. #define ILI9341_WHITE       0xFFFF  ///< 255, 255, 255
  30. #define ILI9341_ORANGE      0xFD20  ///< 255, 165,   0
  31. #define ILI9341_GREENYELLOW 0xAFE5  ///< 173, 255,  41
  32. #define ILI9341_PINK        0xFC18  ///< 255, 130, 198
  33.  
  34. #include "SPI.h"
  35. #include "Adafruit_GFX.h"
  36. #include "Adafruit_ILI9341.h"
  37.  
  38. // For the Adafruit shield, these are the default.
  39. #define TFT_CLK 13
  40. #define TFT_MISO 12
  41. #define TFT_MOSI 11
  42. #define TFT_DC 9
  43. #define TFT_CS 10
  44. #define TFT_RST 8
  45. // Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC
  46. //Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
  47. // If using the breakout, change pins as desired
  48. Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO);
  49.  
  50. void setup() {
  51.   Serial.begin(9600);
  52.   Serial.println("ILI9341 Test!");
  53.  
  54.   tft.begin();
  55.  
  56.   // read diagnostics (optional but can help debug problems)
  57.   uint8_t x = tft.readcommand8(ILI9341_RDMODE);
  58.   Serial.print("Display Power Mode: 0x"); Serial.println(x, HEX);
  59.   x = tft.readcommand8(ILI9341_RDMADCTL);
  60.   Serial.print("MADCTL Mode: 0x"); Serial.println(x, HEX);
  61.   x = tft.readcommand8(ILI9341_RDPIXFMT);
  62.   Serial.print("Pixel Format: 0x"); Serial.println(x, HEX);
  63.   x = tft.readcommand8(ILI9341_RDIMGFMT);
  64.   Serial.print("Image Format: 0x"); Serial.println(x, HEX);
  65.   x = tft.readcommand8(ILI9341_RDSELFDIAG);
  66.   Serial.print("Self Diagnostic: 0x"); Serial.println(x, HEX);
  67.   /*
  68.   Serial.println(F("Benchmark                Time (microseconds)"));
  69.   delay(10);
  70.   Serial.print(F("Screen fill              "));
  71.   Serial.println(testFillScreen());
  72.   delay(500);
  73.  
  74.   Serial.print(F("Text                     "));
  75.   Serial.println(testText());
  76.   delay(3000);
  77.  
  78.   Serial.print(F("Lines                    "));
  79.   Serial.println(testLines(ILI9341_CYAN));
  80.   delay(500);
  81.  
  82.   Serial.print(F("Horiz/Vert Lines         "));
  83.   Serial.println(testFastLines(ILI9341_RED, ILI9341_BLUE));
  84.   delay(500);
  85.  
  86.   Serial.print(F("Rectangles (outline)     "));
  87.   Serial.println(testRects(ILI9341_GREEN));
  88.   delay(500);
  89.  
  90.   Serial.print(F("Rectangles (filled)      "));
  91.   Serial.println(testFilledRects(ILI9341_YELLOW, ILI9341_MAGENTA));
  92.   delay(500);
  93.  
  94.   Serial.print(F("Circles (filled)         "));
  95.   Serial.println(testFilledCircles(10, ILI9341_MAGENTA));
  96.  
  97.   Serial.print(F("Circles (outline)        "));
  98.   Serial.println(testCircles(10, ILI9341_WHITE));
  99.   delay(500);
  100.  
  101.   Serial.print(F("Triangles (outline)      "));
  102.   Serial.println(testTriangles());
  103.   delay(500);
  104.  
  105.   Serial.print(F("Triangles (filled)       "));
  106.   Serial.println(testFilledTriangles());
  107.   delay(500);
  108.  
  109.   Serial.print(F("Rounded rects (outline)  "));
  110.   Serial.println(testRoundRects());
  111.   delay(500);
  112.  
  113.   Serial.print(F("Rounded rects (filled)   "));
  114.   Serial.println(testFilledRoundRects());
  115.   delay(500);
  116.  
  117.   Serial.println(F("Done!"));
  118. */
  119. }
  120.  
  121.  
  122. void loop(void) {
  123.   tft.fillScreen(ILI9341_NAVY);
  124.   tft.setCursor(0, 0);
  125.   tft.setTextColor(ILI9341_WHITE);  tft.setTextSize(1);
  126.   tft.println("Hello World!");
  127.   tft.setTextColor(ILI9341_YELLOW); tft.setTextSize(2);
  128.   tft.println(1234.56);
  129.   tft.setTextColor(ILI9341_RED);    tft.setTextSize(3);
  130.   tft.println(0xDEADBEEF, HEX);
  131.   tft.println();
  132.   tft.setTextColor(ILI9341_GREEN);
  133.   tft.setTextSize(5);
  134.   tft.println("Groop");
  135.   tft.setTextSize(2);
  136.   tft.println("I implore thee,");
  137.   tft.setTextSize(1);
  138.   tft.println("my foonting turlingdromes.");
  139.   tft.println("And hooptiously drangle me");
  140.   tft.println("with crinkly bindlewurdles,");
  141.   tft.println("Or I will rend thee");
  142.   tft.println("in the gobberwarts");
  143.   tft.println("with my blurglecruncheon,");
  144.   tft.println("see if I don't!");
  145.   delay(5000);
  146.  
  147. }
  148.  
  149. unsigned long testFillScreen() {
  150.   unsigned long start = micros();
  151.   tft.fillScreen(ILI9341_BLACK);
  152.   yield();
  153.   tft.fillScreen(ILI9341_RED);
  154.   yield();
  155.   tft.fillScreen(ILI9341_GREEN);
  156.   yield();
  157.   tft.fillScreen(ILI9341_BLUE);
  158.   yield();
  159.   tft.fillScreen(ILI9341_BLACK);
  160.   yield();
  161.   return micros() - start;
  162. }
  163.  
  164. unsigned long testText() {
  165.   tft.fillScreen(ILI9341_BLACK);
  166.   unsigned long start = micros();
  167.   tft.setCursor(0, 0);
  168.   tft.setTextColor(ILI9341_WHITE);  tft.setTextSize(1);
  169.   tft.println("Hello World!");
  170.   tft.setTextColor(ILI9341_YELLOW); tft.setTextSize(2);
  171.   tft.println(1234.56);
  172.   tft.setTextColor(ILI9341_RED);    tft.setTextSize(3);
  173.   tft.println(0xDEADBEEF, HEX);
  174.   tft.println();
  175.   tft.setTextColor(ILI9341_GREEN);
  176.   tft.setTextSize(5);
  177.   tft.println("Groop");
  178.   tft.setTextSize(2);
  179.   tft.println("I implore thee,");
  180.   tft.setTextSize(1);
  181.   tft.println("my foonting turlingdromes.");
  182.   tft.println("And hooptiously drangle me");
  183.   tft.println("with crinkly bindlewurdles,");
  184.   tft.println("Or I will rend thee");
  185.   tft.println("in the gobberwarts");
  186.   tft.println("with my blurglecruncheon,");
  187.   tft.println("see if I don't!");
  188.   return micros() - start;
  189. }
  190.  
  191. unsigned long testLines(uint16_t color) {
  192.   unsigned long start, t;
  193.   int           x1, y1, x2, y2,
  194.                 w = tft.width(),
  195.                 h = tft.height();
  196.  
  197.   tft.fillScreen(ILI9341_BLACK);
  198.   yield();
  199.  
  200.   x1 = y1 = 0;
  201.   y2    = h - 1;
  202.   start = micros();
  203.   for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color);
  204.   x2    = w - 1;
  205.   for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color);
  206.   t     = micros() - start; // fillScreen doesn't count against timing
  207.  
  208.   yield();
  209.   tft.fillScreen(ILI9341_BLACK);
  210.   yield();
  211.  
  212.   x1    = w - 1;
  213.   y1    = 0;
  214.   y2    = h - 1;
  215.   start = micros();
  216.   for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color);
  217.   x2    = 0;
  218.   for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color);
  219.   t    += micros() - start;
  220.  
  221.   yield();
  222.   tft.fillScreen(ILI9341_BLACK);
  223.   yield();
  224.  
  225.   x1    = 0;
  226.   y1    = h - 1;
  227.   y2    = 0;
  228.   start = micros();
  229.   for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color);
  230.   x2    = w - 1;
  231.   for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color);
  232.   t    += micros() - start;
  233.  
  234.   yield();
  235.   tft.fillScreen(ILI9341_BLACK);
  236.   yield();
  237.  
  238.   x1    = w - 1;
  239.   y1    = h - 1;
  240.   y2    = 0;
  241.   start = micros();
  242.   for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color);
  243.   x2    = 0;
  244.   for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color);
  245.  
  246.   yield();
  247.   return micros() - start;
  248. }
  249.  
  250. unsigned long testFastLines(uint16_t color1, uint16_t color2) {
  251.   unsigned long start;
  252.   int           x, y, w = tft.width(), h = tft.height();
  253.  
  254.   tft.fillScreen(ILI9341_BLACK);
  255.   start = micros();
  256.   for(y=0; y<h; y+=5) tft.drawFastHLine(0, y, w, color1);
  257.   for(x=0; x<w; x+=5) tft.drawFastVLine(x, 0, h, color2);
  258.  
  259.   return micros() - start;
  260. }
  261.  
  262. unsigned long testRects(uint16_t color) {
  263.   unsigned long start;
  264.   int           n, i, i2,
  265.                 cx = tft.width()  / 2,
  266.                 cy = tft.height() / 2;
  267.  
  268.   tft.fillScreen(ILI9341_BLACK);
  269.   n     = min(tft.width(), tft.height());
  270.   start = micros();
  271.   for(i=2; i<n; i+=6) {
  272.     i2 = i / 2;
  273.     tft.drawRect(cx-i2, cy-i2, i, i, color);
  274.   }
  275.  
  276.   return micros() - start;
  277. }
  278.  
  279. unsigned long testFilledRects(uint16_t color1, uint16_t color2) {
  280.   unsigned long start, t = 0;
  281.   int           n, i, i2,
  282.                 cx = tft.width()  / 2 - 1,
  283.                 cy = tft.height() / 2 - 1;
  284.  
  285.   tft.fillScreen(ILI9341_BLACK);
  286.   n = min(tft.width(), tft.height());
  287.   for(i=n; i>0; i-=6) {
  288.     i2    = i / 2;
  289.     start = micros();
  290.     tft.fillRect(cx-i2, cy-i2, i, i, color1);
  291.     t    += micros() - start;
  292.     // Outlines are not included in timing results
  293.     tft.drawRect(cx-i2, cy-i2, i, i, color2);
  294.     yield();
  295.   }
  296.  
  297.   return t;
  298. }
  299.  
  300. unsigned long testFilledCircles(uint8_t radius, uint16_t color) {
  301.   unsigned long start;
  302.   int x, y, w = tft.width(), h = tft.height(), r2 = radius * 2;
  303.  
  304.   tft.fillScreen(ILI9341_BLACK);
  305.   start = micros();
  306.   for(x=radius; x<w; x+=r2) {
  307.     for(y=radius; y<h; y+=r2) {
  308.       tft.fillCircle(x, y, radius, color);
  309.     }
  310.   }
  311.  
  312.   return micros() - start;
  313. }
  314.  
  315. unsigned long testCircles(uint8_t radius, uint16_t color) {
  316.   unsigned long start;
  317.   int           x, y, r2 = radius * 2,
  318.                 w = tft.width()  + radius,
  319.                 h = tft.height() + radius;
  320.  
  321.   // Screen is not cleared for this one -- this is
  322.   // intentional and does not affect the reported time.
  323.   start = micros();
  324.   for(x=0; x<w; x+=r2) {
  325.     for(y=0; y<h; y+=r2) {
  326.       tft.drawCircle(x, y, radius, color);
  327.     }
  328.   }
  329.  
  330.   return micros() - start;
  331. }
  332.  
  333. unsigned long testTriangles() {
  334.   unsigned long start;
  335.   int           n, i, cx = tft.width()  / 2 - 1,
  336.                       cy = tft.height() / 2 - 1;
  337.  
  338.   tft.fillScreen(ILI9341_BLACK);
  339.   n     = min(cx, cy);
  340.   start = micros();
  341.   for(i=0; i<n; i+=5) {
  342.     tft.drawTriangle(
  343.       cx    , cy - i, // peak
  344.       cx - i, cy + i, // bottom left
  345.       cx + i, cy + i, // bottom right
  346.       tft.color565(i, i, i));
  347.   }
  348.  
  349.   return micros() - start;
  350. }
  351.  
  352. unsigned long testFilledTriangles() {
  353.   unsigned long start, t = 0;
  354.   int           i, cx = tft.width()  / 2 - 1,
  355.                    cy = tft.height() / 2 - 1;
  356.  
  357.   tft.fillScreen(ILI9341_BLACK);
  358.   start = micros();
  359.   for(i=min(cx,cy); i>10; i-=5) {
  360.     start = micros();
  361.     tft.fillTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i,
  362.       tft.color565(0, i*10, i*10));
  363.     t += micros() - start;
  364.     tft.drawTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i,
  365.       tft.color565(i*10, i*10, 0));
  366.     yield();
  367.   }
  368.  
  369.   return t;
  370. }
  371.  
  372. unsigned long testRoundRects() {
  373.   unsigned long start;
  374.   int           w, i, i2,
  375.                 cx = tft.width()  / 2 - 1,
  376.                 cy = tft.height() / 2 - 1;
  377.  
  378.   tft.fillScreen(ILI9341_BLACK);
  379.   w     = min(tft.width(), tft.height());
  380.   start = micros();
  381.   for(i=0; i<w; i+=6) {
  382.     i2 = i / 2;
  383.     tft.drawRoundRect(cx-i2, cy-i2, i, i, i/8, tft.color565(i, 0, 0));
  384.   }
  385.  
  386.   return micros() - start;
  387. }
  388.  
  389. unsigned long testFilledRoundRects() {
  390.   unsigned long start;
  391.   int           i, i2,
  392.                 cx = tft.width()  / 2 - 1,
  393.                 cy = tft.height() / 2 - 1;
  394.  
  395.   tft.fillScreen(ILI9341_BLACK);
  396.   start = micros();
  397.   for(i=min(tft.width(), tft.height()); i>20; i-=6) {
  398.     i2 = i / 2;
  399.     tft.fillRoundRect(cx-i2, cy-i2, i, i, i/8, tft.color565(0, i, 0));
  400.     yield();
  401.   }
  402.  
  403.   return micros() - start;
  404. }
A hozzászólás módosítva: Dec 10, 2019
(#) pipi válasza zaza99 hozzászólására (») Dec 11, 2019 /
 
Hali!
Ugyanilyen fut nekem esp8266-al.
Ha kihozod Kispestre, kipróbálhatjuk a tiédet működőképes-e
(#) zaza99 válasza pipi hozzászólására (») Dec 11, 2019 /
 
Szia!
Nagyatádtól elég messze vagy, de ha megosztanád velem a kapcsolási rajzot és a programot /elég ha valamit kiír/ az már nagy segítség lenne.
(#) zaza99 válasza zaza99 hozzászólására (») Dec 11, 2019 /
 
A soros monitoron ezt adja vissza:

ILI9341 Test!
Display Power Mode: 0x0
MADCTL Mode: 0x0
Pixel Format: 0x0
Image Format: 0x0
Self Diagnostic: 0x0
Benchmark Time (microseconds)
Screen fill 28742796
Text 1475840
Lines 13813088
Horiz/Vert Lines 2340728
Rectangles (outline) 1488336
(#) pipi válasza zaza99 hozzászólására (») Dec 11, 2019 /
 
Ez az óra/időjárás fut nálam:
Bővebben: Link
(#) zaza99 válasza pipi hozzászólására (») Dec 11, 2019 /
 
Rosszul kötöttem be ,most már van soros monitoron érték de továbbra is fehér a kijelző.

ILI9341 Test!
19:14:11.646 -> Display Power Mode: 0x94
19:14:11.646 -> MADCTL Mode: 0x2C
19:14:11.680 -> Pixel Format: 0x3
19:14:11.714 -> Image Format: 0x80
19:14:11.714 -> Self Diagnostic: 0xC0
A hozzászólás módosítva: Dec 11, 2019
Következő: »»   572 / 849
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