Fórum témák

» Több friss téma
Lapozás: OK   130 / 137
(#) pipi válasza etilalkohol hozzászólására (») Jún 25, 2023 /
 
internet idő másodperc:75804 óra: 21:3:24
gyanús hogy az év 1900..., vagyis rossz, próbáld a fentivel lekérdezni, ellenőrizni, valós-e az évszám...
meg szerintem kell a time(&now);
(#) etilalkohol válasza pipi hozzászólására (») Jún 25, 2023 /
 
Ha jól értem, akkor az évet kellene nullázni (timeinfo.tm_year) és akkor mindenképp az sntp időt fogja adni?
Korábban próbáltam ezt: "settimeofday(0, NULL);" de nem segített, persze lehet nem is így kell nullázni
(#) etilalkohol válasza pipi hozzászólására (») Jún 25, 2023 /
 
A dátum jó:
"21:02:40.765 -> NTP time: Sunday, June 25 2023 21:02:40"
nekem csak az óra kell, mert ez egy lapozóórát állít be pontos időre, így a 75804 az a másodpercek száma azaz a pontos idő másodpercben...
(#) pipi válasza etilalkohol hozzászólására (») Jún 25, 2023 /
 
Azt hiába nullázod... Ellenőrizni kell, ha rossz akkor újra lekérdezés... nézted amit küldtem linket, van még ott más is, pl ez is számíthat: sntp_set_sync_mode()
(#) pipi válasza etilalkohol hozzászólására (») Jún 25, 2023 /
 
Amit küldtél soros monitort, az reset után van szerintem, mi van ébredés után mikor "rossz" az óra?
(#) etilalkohol válasza pipi hozzászólására (») Jún 25, 2023 /
 
Olvasom, közben már 20 óránál jár a lapozás... lassan kiderül a késleltetés segít-e, addig nem nyúlok a kódba csak próbálok okosodni közben.
Ha jól értelmezem, akkor ha van net kapcsolat és eléri az sntp szervert, akkor frissíti az RTC-t ha letelt a beállított frissítési idő (ami legkevesebb 15mp lehet), amennyiben nem telt le vagy nem éri el a szervert (erre 5mp-e van), akkor csak visszaadja a belső RTC időt. Valahol itt lehet a hiba nálam, hogy ébredés után ezek a feltételek nem teljesülnek, így kapásból az RTC időt adja vissza csak...
(#) dara válasza pipi hozzászólására (») Jún 25, 2023 /
 
Van net.Nem tudok rálépni a neten a webkonfigurácios felületen mert nem talál semmit róla.Beütöm a wifin kiadott nevet nem talál semmit róla.

Bakman:
A ruterben sincs az eszköz,
(#) etilalkohol válasza pipi hozzászólására (») Jún 25, 2023 /
 
Igen az reszet utáni, mivel az elalvás előtt ellapoztat a pontos időre (egy perc kb. 7 másodperc alatt lapozódik), most ezt várom...
(#) etilalkohol hozzászólása Jún 25, 2023 /
 
Működik, köszönöm a segítséget mindnyájatoknak!
A késleltetés kellett (azaz idő kell hozzá, hogy a háttérben az RTC-be írja át az sntp időt, amit az én kódom nem várt meg, így még a nem frissített RTC időt adta vissza), majd kiderül melyik a kettő közül:
"21:37:48.922 -> internet idő másodperc:77868 óra: 21:37:48 , lapozó óra idő másodperc:77765 óra: 21:36:5
21:37:48.922 -> 103 másodperc az eltérés...
21:37:48.922 -> 103 másodperc a lemaradás...lapozz
21:37:50.448 -> lapoztam...
21:37:56.446 -> internet idő másodperc:77875 óra: 21:37:55 , lapozó óra idő másodperc:77825 óra: 21:37:5
21:37:56.446 -> 50 másodperc az eltérés...
21:38:04.461 -> 50 másodperc a lemaradás...lapozz
21:38:05.941 -> lapoztam...
21:38:11.956 -> internet idő másodperc:77891 óra: 21:38:11 , lapozó óra idő másodperc:77885 óra: 21:38:5
21:38:11.956 -> 6 másodperc az eltérés...
21:38:12.002 -> 6 másodperc az eltérés...lekapcsol
21:38:13.971 -> lekapcsol: idő beállítva, ébredés 1 óra múlva
21:44:12.694 -> ets Jun 8 2016 00:22:57
21:44:12.694 ->
21:44:12.694 -> rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
21:44:12.694 -> configsip: 0, SPIWP:0xee
21:44:12.694 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
21:44:12.694 -> modeIO, clock div:2
21:44:12.734 -> load:0x3fff0030,len:1184
21:44:12.734 -> load:0x40078000,len:12776
21:44:12.734 -> load:0x40080400,len:3032
21:44:12.734 -> entry 0x400805e4
21:44:13.494 ->
21:44:13.494 ->
21:44:13.494 -> Connecting to fenyveshegy
21:44:13.614 -> .....................
21:44:15.614 -> WiFi connected.
21:44:15.614 -> IP address:
21:44:15.614 -> 192.168.1.103
21:44:20.614 -> Connecting to sntp server
21:44:20.614 -> NTP connected: milliszekundum = 0
21:44:20.654 -> NTP connected: milliszekundum = 0
21:44:20.654 -> NTP time: Sunday, June 25 2023 21:44:20
21:44:20.654 -> WiFi lekapcsol
21:44:20.654 -> Várom a lapozóóra adatokat...
21:45:12.274 -> internet idő másodperc:78311 óra: 21:45:11 , lapozó óra idő másodperc:78305 óra: 21:45:5
21:45:12.274 -> 6 másodperc az eltérés...
21:45:12.274 -> 6 másodperc az eltérés...lekapcsol
21:45:14.274 -> lekapcsol: idő beállítva, ébredés 1 óra múlva
"
(#) KoblogPerGyok hozzászólása Júl 1, 2023 /
 
Sziasztok!

Már megint bajban vagyok. Késztettem egy R-2R ellenállás létrát, működik, azaz majdnem...

Hiba:

Ha feltesszük, hogy 8 bites a létra, és pl. az első legkisebb bitre írok, akkor csak akkor működik, ha a megfelelő bit bemenet megkapja a logikai feszt, míg a többi GND-re van húzva. Ellenkező esetben negatv fesz és sok-sok hibás adat. Sima teszteléskor ment, ha a 0-s biteket GND-re kötöttem, simán hozza a kívánt értéket. ESP-re kötve simán negatív feszt kapok..... Az ESP32S mikor a létrehozott port-ra írom a megfelelő értéket, akkor szerintem nem húzza a nem használt bit-nek használt lábakat a Földre.

Mi lehet erre a megoldás? Input pull down-ra van szoftverees megoldás, de outputnál?

Köszönöm!
(#) usane válasza KoblogPerGyok hozzászólására (») Júl 3, 2023 /
 
Az ESP32-n a kimenet 1 vagy 0. Azt hiszem Open drain-t is tud de azt be kell kapcsolni. Nem tudom mekkora ellenallasokbol epitetted, de ha nem tudja le vagy felhunzni a megfelelo ertekre akkor a meghajtott aramkor bemeneti impedanciaja tul kicsi. Valamint kimenetenkent 20mA-nal nem celszeru tobbel terhelni. 40mA az ABSZOLUT maximum.
(#) dB_Thunder válasza KoblogPerGyok hozzászólására (») Júl 3, 2023 /
 
Az adott 8 bit-nyi kimenetet, konstansan kimenetnek kell konfigurálni!!
Erre van megfelelő utasítás.
Ha bemenetként funkcionál, akkor Z állapotot vesz fel, azaz magas impedanciát fog mutatni.
(#) KoblogPerGyok válasza usane hozzászólására (») Júl 3, 2023 /
 
Sziasztok!

Köszi a válaszokat! 1.13, 2.26K precíziós ellenállásokkal építettem meg. Remélem nem nyírtam még ki az ESP-t..

Arduino:
Arduinoval tökéletesen működik. Mivel a soros porton keresztül vezérlem, csak 6 bit felbontásom van 0-5V-on. De még az is szép különben még a szűrés nélkül is.

ESP:
Erre az Open drain-re gondoltam én is, de nem tudom hogyan kell megoldani ezt. Hogyan kell bekapcsolni?

Valakinek egy példa, ami pol GPIO12-19-ig outputra állítva, mint egy port, és ez a Open drain is be van kapcsolva?

Eddig nekem ez van:

  1. #define PARALLEL_0  12
  2.  
  3. #define LED_GPIO   5
  4. #define PWM1_Ch    14
  5. #define PWM1_Res   8
  6. //#define PWM1_Freq  200000
  7.  
  8. //https://wokwi.com/projects/338803013288198738
  9.  
  10.  
  11. #include <Arduino.h>
  12. #include <math.h>
  13.  
  14. // put function declarations here:
  15. void parallel_set_inputs(void);
  16. void parallel_set_outputs(void);
  17. uint8_t parallel_read(void);
  18. void parallel_write(uint8_t value);
  19.  
  20.  
  21. void DAC_bit_test(void);
  22.  
  23.  
  24. const int LUT_size=256;
  25. double pi= 3.141592653589793238462;
  26. long most;
  27. long eltelt;
  28. unsigned char szin_tabla[LUT_size];
  29. int i;
  30. String valasz ="";
  31.  
  32. void setup() {
  33.  
  34. Serial.begin(115200);
  35. uint32_t getCpuFrequencyMhz();
  36. Serial.println("");
  37. Serial.println("------------------------------------------------------");
  38. Serial.println("CPU frekvencia (MHz)");
  39. Serial.println(getCpuFrequencyMhz());
  40. Serial.println("------------------------------------------------------");
  41.  
  42.  
  43. //Port létrehozása:
  44. for (int i = 0; i < 8; i++)
  45.   {
  46.     pinMode(PARALLEL_0 + i, OUTPUT);
  47.   }
  48. Serial.println("Port létrehozva GPIO12-19-ig");
  49. Serial.println("Legkisebb helyiértékű bit a GPIO12-es láb.");
  50. Serial.println("Piros kábellel csatlakozik az R-2R DAC-hoz.");
  51. Serial.println("------------------------------------------------------");
  52.  
  53. parallel_set_outputs();
  54. Serial.println("Port beállítva kimenetre.");
  55.  
  56. int mehet=0;
  57.  
  58.   while (mehet==0)
  59.   {
  60.     Serial.println("DAC bitjeinek tesztje? (i/n)");
  61.     while (!Serial.available()); // Wait for input
  62.     valasz = Serial.readStringUntil('\n');
  63.     Serial.println(valasz);
  64.  
  65.     if (valasz=="i" || valasz=="n")
  66.     {
  67.       mehet=1;
  68.     }
  69.   }
  70.  
  71. if (valasz=="i")
  72. {
  73.  
  74.     DAC_bit_test();
  75. }
  76.   // put your setup code here, to run once:
  77.   for (i=0;i<=256;i++)
  78.     {
  79.           //LUT(i) = Int(127 * Sin(2 * dblPi * i / LUT_size) + 128)
  80.      szin_tabla[i]=127*sin(2*pi*i/LUT_size)+128;
  81.         //Serial.println(szin_tabla[i]);
  82.     }
  83.  
  84.  
  85. }
  86.  
  87. void loop() {
  88.  
  89.     //most=micros();
  90.   //  for (i=0;i<=256;i++)
  91.   //   {
  92.   //     parallel_write(szin_tabla[i]);
  93.   //   }
  94.    // eltelt=micros()-most;
  95.    // float frekvencia_max =1000/eltelt;
  96.     ///Serial.print("Elérhető max frekvencia KHz:  ");
  97.    // Serial.println(frekvencia_max);
  98.  
  99. }
  100.  
  101. void DAC_bit_test(void)
  102. {
  103. int mehet=0;
  104.     Serial.println("DAC bitjeinek tesztje:");
  105.     Serial.println("Kilépés: 'k'");
  106.     Serial.println("");
  107.     Serial.println("0-8 karakterekkel választhat bitet!");
  108.  
  109.   while (mehet==0)
  110.   {
  111.     while (!Serial.available()); // Wait for input
  112.     String valasz = Serial.readStringUntil('\n');
  113.     if (valasz=="k")
  114.     {
  115.       Serial.println("A DAC Bit tesztből kilépett!");
  116.       return;
  117.     }
  118.  
  119.  
  120.   int ii;
  121.  
  122.  ii=valasz.toInt();
  123.     switch (ii)
  124.     {
  125.       case 0:
  126.       parallel_write(0);
  127.       Serial.println("0-t választott");
  128.       Serial.println("0-8 karakterekkel válazthat bitet!");
  129.       Serial.println("Kilépés: 'k'");
  130.        break;
  131.       case 1:
  132.       parallel_write(1);
  133.       Serial.println("1-t választott");
  134.       Serial.println("0-8 karakterekkel válazthat bitet!");
  135.       Serial.println("Kilépés: 'k'");
  136.       break;
  137.       case 2:
  138.       parallel_write(2);
  139.       Serial.println("2-t választott");
  140.       Serial.println("0-8 karakterekkel válazthat bitet!");
  141.       Serial.println("Kilépés: 'k'");
  142.       break;
  143.       case 3:
  144.       parallel_write(4);
  145.       Serial.println("3-t választott");
  146.       Serial.println("0-8 karakterekkel válazthat bitet!");
  147.       Serial.println("Kilépés: 'k'");
  148.       break;
  149.       case 4:
  150.       parallel_write(8);
  151.       Serial.println("4-t választott");
  152.       Serial.println("0-8 karakterekkel válazthat bitet!");
  153.       Serial.println("Kilépés: 'k'");
  154.       break;
  155.       case 5:
  156.       parallel_write(16);
  157.       Serial.println("5-t választott");
  158.       Serial.println("0-8 karakterekkel válazthat bitet!");
  159.  
  160.       Serial.println("Kilépés: 'k'");
  161.       break;
  162.       case 6:
  163.       parallel_write(32);
  164.       Serial.println("6-t választott");
  165.       Serial.println("0-8 karakterekkel válazthat bitet!");
  166.       break;
  167.       case 7:
  168.       parallel_write(64);
  169.       Serial.println("7-t választott");
  170.       Serial.println("0-8 karakterekkel válazthat bitet!");
  171.       Serial.println("Kilépés: 'k'");
  172.       break;
  173.       case 8:
  174.       parallel_write(128);
  175.       Serial.println("8-t választott");
  176.       Serial.println("0-8 karakterekkel válazthat bitet!");
  177.       break;
  178.  
  179.       default:
  180.       Serial.println("Hibás paraméter.");
  181.  
  182.       Serial.println("Kilépés: 'k'");
  183.       break;
  184.  
  185.     }
  186.  
  187.   }
  188. }
  189.  
  190.  
  191.  
  192.  
  193. void parallel_set_inputs(void) {
  194.   REG_WRITE(GPIO_ENABLE_W1TC_REG, 0xFF << PARALLEL_0);
  195. }
  196.  
  197. void parallel_set_outputs(void) {
  198.   REG_WRITE(GPIO_ENABLE_W1TS_REG, 0xFF << PARALLEL_0);
  199. }
  200.  
  201. uint8_t parallel_read(void) {
  202.   uint32_t input = REG_READ(GPIO_IN_REG);
  203.  
  204.   return (input >> PARALLEL_0);
  205. }
  206.  
  207. void parallel_write(uint8_t value) {
  208.   uint32_t output =
  209.     (REG_READ(GPIO_OUT_REG) & ~(0xFF << PARALLEL_0)) | (((uint32_t)value) << PARALLEL_0);
  210.  
  211.   REG_WRITE(GPIO_OUT_REG, output);
  212. }


Ilyen kódot dobtam gyorsan össze. Kicsit soknak tűnik, de a port létrehozása a lényegi része, azt nem tudom hogyan kellene átalakítani.

Vagy ha nem lehetséges, akkor mi kellene még pluszban? Ha lehúzó ellenállásokat teszek bele, az befolyásolja a DAC-ot, legalábbis egyelőre gy gondolom.
(#) dB_Thunder válasza KoblogPerGyok hozzászólására (») Júl 3, 2023 /
 
Idézet:
„Ha lehúzó ellenállásokat teszek bele, az befolyásolja a DAC-ot, legalábbis egyelőre gy gondolom.”

Biztos is, hogy a lehúzó ellenállások, beleszólnak a R-2R létrába! Legalább egy nagyságrenddel kisebb ellenállás kellene, de az meg túlterheli a kimenetet!
(#) kapu48 válasza KoblogPerGyok hozzászólására (») Júl 3, 2023 / 1
 
Az esp32-hal-gpio.h -ban definiált GPIO port módok:
  1. //GPIO FUNCTIONS
  2. #define INPUT             0x01
  3. // Changed OUTPUT from 0x02 to behave the same as Arduino pinMode(pin,OUTPUT)
  4. // where you can read the state of pin even when it is set as OUTPUT
  5. #define OUTPUT            0x03
  6. #define PULLUP            0x04
  7. #define INPUT_PULLUP      0x05
  8. #define PULLDOWN          0x08
  9. #define INPUT_PULLDOWN    0x09
  10. #define OPEN_DRAIN        0x10
  11. #define OUTPUT_OPEN_DRAIN 0x12
  12. #define ANALOG            0xC0
  13.  
  14. //Interrupt Modes
  15. #define DISABLED  0x00
  16. #define RISING    0x01
  17. #define FALLING   0x02
  18. #define CHANGE    0x03
  19. #define ONLOW     0x04
  20. #define ONHIGH    0x05
  21. #define ONLOW_WE  0x0C
  22. #define ONHIGH_WE 0x0D


Szerintem elég bő a választék!
Lehet kísérletezni.
A hozzászólás módosítva: Júl 3, 2023
(#) KoblogPerGyok válasza kapu48 hozzászólására (») Júl 3, 2023 /
 
Köszi a választ, de még nem világos ez. Arduino, DSPIC,PIC -ben már sokat olvastam, meg használom is, de tudom, hogy sok időmbe telt, mire kibogarásztam a felépítését, ezért fordulok ide, mert aki sokat használta az ESP32-t az gyorsabban tudja kihámozni a megoldást.

A dokumentációban(727 oldalasban) a 76. oldalon ezt találtam a
"Register 4.34. IO_MUX_x_REG (x: GPIO0­GPIO39) (0x10+4*x)"
fejezetben:

Idézet:
„FUN_WPD Pull-down enable of the pad. 1: internal pull-down enabled, 0: internal pull-down disabled. GPIO pins 34-39 are input-only. These pins do not feature an output driver or internal pullup/pull-down circuitry, therefore, their FUN_WPD is always 0. (R/W)”


Szóval elképzelhető, hogy az adott pin-re ezekel kell beállítani? Szóval mondjuk a GPIO12-nek ezen regiszterében a FUN_WPU -t nullára, míg a FUN_WPD-t 1 re kell állítani?

Mert ha jól értem, akkor a 34-39 pinre nem vonatkozik ez a driver. Ha lehúzom nullára az output lábakat a beéptett ellenállással, majd írok rá szoftverből, akkor megjelenik a logikai 3.3V?
Ez nem ezt csinálja?

És alapból 0 a regiszter értéke, azaz nem használ sem le, sem felhúzó ellenállást. A Z állapot nekem nem jó szerintem, mert az éppen logikai 0-n lévő lábaknak a földön kell lenniük.

Melyik regisztert kell még néznem, hogy egy adott pin output legyen?

Köszönöm a türelmeteket!
A hozzászólás módosítva: Júl 3, 2023
(#) dB_Thunder válasza KoblogPerGyok hozzászólására (») Júl 3, 2023 /
 
Neked a DAC létrához nem kell semmilyen húzogató ellenállás!!
Sima egyszerű kimenetre kell állítani az adott lábakat!

Azt nem értem miért álligatod át bemenetre is???
Idézet:

void parallel_set_inputs(void) {
REG_WRITE(GPIO_ENABLE_W1TC_REG, 0xFF << PARALLEL_0);
}

void parallel_set_outputs(void) {
REG_WRITE(GPIO_ENABLE_W1TS_REG, 0xFF << PARALLEL_0);”
(#) KoblogPerGyok válasza dB_Thunder hozzászólására (») Júl 3, 2023 /
 
Ezt lestem egy oldalról, hogy hogyan lehet más-más portokat is készíteni, és írni olvasni rá. Benthagytam a kódban, elvileg csak egyet hívok meg, ha nem tévedek, így ez nem fut le. Tévedek?

De, nekem így nem működik. Meg sok sok hiba, meg áram az ESP-be, remélem nem ment még tönkre.

De olvasgatom a leírást, egyelőre nem értem, nagyon idegenek a regiszterek nevei és funkciói. Nem lehet, hogy az IO MUX-ot kell beálltani, meg a GPIO mátrix-ot? Még zavar van rendesen. A leírásban van pull donw is a IO MUX-ban, esetleg annak a regiszterét is kell állítani.

Vagy nem jó a kód? Lehet bementere állnak a nem haszált lábak? Azaz 1 biten megjelenik a 3.3V, míg a többi láb meg nem jó? Nem értem pontosan mi a hiba.

Arduino-kóddal tökéletes.
(#) kapu48 válasza KoblogPerGyok hozzászólására (») Júl 3, 2023 /
 
De itt már nem szoktunk regiszter szinten programozni (csak a nagyon fakír menők!) Ezért vannak a kész lib-ek: Bővebben: Link

Hordozható C és C++ kódok. Esetleg ezekből is sokat tanulhatsz.
Már olyan jók a fordítok, hogy kezdő létedre úgysem tudsz jobb eredményt elérni regiszter szinten.
Esetleg a hiba ellenőrzések kihagyásával, de ez meg nem éri meg mert később a hibakeresésekkel rengeteg időt elfogsz tölteni.
(#) dB_Thunder válasza kapu48 hozzászólására (») Júl 3, 2023 /
 
Idézet:
„De itt már nem szoktunk regiszter szinten programozni”

De el kell jutni az ittig!
Kisebb kódoknál jól jöhet kezdőknek, ha megírják az alapoktól!

Én sokat tanultam mikor tök egyedül egy ATiny45-re írtam C-ben programot! Az elsőt..
Át kellett párszor nyálaznom az adatlapot. mire minden szükséges hardware elemet működésre bírtam!
(#) KoblogPerGyok válasza dB_Thunder hozzászólására (») Júl 3, 2023 /
 
Hát, ha nem kell regiszter szinten belenyúlni, akkor miért nem megy? Nem elég output-ra állítani, azt is elrontom? Amit bemásolt kapu48 define-okkal megadott hexa értékek csak számok nekem. Gondolom valamelyik regisztereknek ad megfelelő értékeket mindegyik. A probléma gyökeréhez meg szerintem éppen ezeknek a pontos ismerete kellene, hogy open drain, meg kell-e pull down, vagy sem, lehet-e egyáltalán vagy sem. Én nem tudom, ezért kérdezem.

GPIO12-pint hogy kell 1-2 sorban beállítani, hogy ha 0-t írok rá, akkor jó legyen? Mert így nem jó. Elhiszem, hogy itt már nem kell regisztereket birizgálni, de akkor melyik az az egy sor, ami megoldja a problémámat, már ha létezik rá megoldás egyáltalán.
A hozzászólás módosítva: Júl 3, 2023
(#) kapu48 válasza KoblogPerGyok hozzászólására (») Júl 4, 2023 /
 
Kezdjük a programod elejétől 26, 27. sor nem jó a long típus: Bővebben: Link
Idő méréshez unsigned long kel!
Hibát keresni a legidőpazarlóbb dolog, ezért én a továbbiakat rád hagyom!
Van még bőven mit tanulni.
Én nem regiszter szintű programozással kezdeném! Keres arduinos példákat és azokat próbáld megérteni, alkalmazni.
A hozzászólás módosítva: Júl 4, 2023
(#) usane válasza KoblogPerGyok hozzászólására (») Júl 4, 2023 /
 
Nem igazan tudom megmondani ESP32-n mennyire mukodik ez a portmanipulacio. De az ESP foruman leirtak szerint nem minden kimeneten. Szoval lehet, hogy mashogy kell megoldanod.
(#) KoblogPerGyok válasza kapu48 hozzászólására (») Júl 4, 2023 /
 
A regiszter szintű programozás megy, igaz DSPIC-en, és egyéb PIC-en. Azt is írtam, hogy nincs sok időm sokat bogarászni, mert tudom mennyi időbe telik. Tapasztaltam a PIC-nél. ASM is megy de az nehezebb. A program működik, legalábbis akkor ha nem kötöm rá a DAC-ra. wokwi.com -on tesztelgettem, mert nem akartam kinyírni az ESP-t. Nem is akartam tökéletesre, csak kapcsolgasson megfelelő lábakat tesztelésre, éppen azért, mert egy R-2R létra nem működik rendesen, ha a nem használt lábak lógnak a levegőben, és nincsenek lehúzva földre. Ezt lehet tesztelni mindenféle mikrokontroller nélkül.
Arduino-n meg volt vagy 10 perc összehozni a kódot ami tökletesen működik, gyakorlatilag tökugyanez a kód. A hiba az eltérő fizikai feléptésben lesz, amit nem értek, de majd megértem. Ha ennyire nem tudok programozni, akkor egy setup, loop, alap program, amiben a 12-s GPIO úgy működik ahogy kell, vagy 12-19-ig és írni rá példa kódot amit talán még megértettem volna. Vagy használni tudtam volna, hogy teszteljem a sebességet. De valójábn kértem is, így csak egy rövid példa kellet volna, amit bemásoltam lehet hibás, nem azt kell javítani. Arduino-n tökéletesen fut.


De tanulok inkább.
(#) dB_Thunder válasza KoblogPerGyok hozzászólására (») Júl 4, 2023 /
 
Idézet:
„Hát, ha nem kell regiszter szinten belenyúlni, akkor miért nem megy?”

Mert rosszul van megírva program!

Idézet:
„Nem elég output-ra állítani, azt is elrontom?”

Nem mind1 hogy és mikor állítod kimenetre! Nem vagyok programozás guru, de a mostani felállásban van rá esély, hogy az adott pinek bemenetek legyenek!
Ezért javasoltam, hogy az szükséges kimeneteket már a setup részben definiáld! Úgyis csak a DAC létra van ezekre kötve (gondolom)

Idézet:
„define-okkal megadott hexa értékek csak számok nekem. Gondolom valamelyik regisztereknek ad megfelelő értékeket mindegyik.”

Ez így van! Az adott hardver rész, jelen esetben az IO-k beállításait tartalmazza.

Idézet:
„meg kell-e pull down, vagy sem, lehet-e egyáltalán vagy sem. Én nem tudom, ezért kérdezem.”

Jó lenne ha ismernéd µC-k "I/O Pin Equivalent Schematic"-ját, magyarul az egyszerűsített kapcsolási rajzát! És értenél az elektrotechnikához, akkor már tudnál mindent!
ESP-hez nem találtam, de AtMega-hoz igen:
https://www.arnabkumardas.com/arduino-tutorial/gpio-register-description/

A DAC létra pontos működésékez kis impedanciás (max. pár ohm) logikai 1, vagy 0 kell! Ezt fel-, vagy lehúzó ellenállásokkal, "Open Drain" kimenettel nem lehet megcsinálni!

A fel- vagy lehúzó ellenállások használatának csak akkor van értelme, ha az adott pin-t bemenetként használjuk!
(#) KoblogPerGyok válasza dB_Thunder hozzászólására (») Júl 4, 2023 /
 
A setup-ban vannak kimenetre állítva. Elvileg annak jónak kellene lennie. DE ha nem, akkor kértem egy max 10-15 soros példát, vagy 2x.

Igen, a pic-et és az Arduino pin-kapcsolását értem, az ESP-t NEM értem, de le is írod, hogy nem találod. ÉN SEM!!! Ez a kérdésem!

Nem tudom, hogy milyen a GPIO -pin. Ez lett volna a kérdés!

A másik, hogy még mindig a bemásolt kódon lovagoltok. Miért? Írtam vagy 2x, hogy simán elég egy kis példa program tőletek. Ha hibás lenne a program. Bár a szimulációban azért fut.
Egyszer azért nem jó mert vannak meg nem hívott függvények, attól mennie kell, de kitörlöm nem gond. Máskor egy változó a hiba, ami különben működik, csak max nem annyira nagy értékig jó, de NINCS is használatban. De ok.

Szóval az ESP32S NEM alkalmas R-2R létra meghajtására.
(#) KoblogPerGyok válasza dB_Thunder hozzászólására (») Júl 4, 2023 /
 
Idézet:
„A fel- vagy lehúzó ellenállások használatának csak akkor van értelme, ha az adott pin-t bemenetként használjuk!”


Igen. Ha megnézed az első kérdéseimet, ott le is írom kérdőjellel, hogy ez inputra ok, no de outputra????
A hozzászólás módosítva: Júl 4, 2023
(#) KoblogPerGyok válasza dB_Thunder hozzászólására (») Júl 4, 2023 /
 
Idézet:
„A DAC létra pontos működésékez kis impedanciás (max. pár ohm) logikai 1, vagy 0 kell! Ezt fel-, vagy lehúzó ellenállásokkal, "Open Drain" kimenettel nem lehet megcsinálni!”


Ok, ezt értem. Ez is lett volna a kérdésem!

Szóval a kód a hibás, VAGY az ESP32S fizikai kivitelezése miatt nem lehet?
Vagy ha az ESP engedi és van olyan beállítása/pin driver kapcsolása fizikailag kiépítve a GPIO-pin-re ami végül megoldaná, hogy olyan pin-t lásson az áramköröm, mint az Arduino-nál, akkor azt hogy kell definiálni.

Mint mondtam, nem tudom, csak azt látom, hogy egyiknél ok, a másiknál nem. Ezért kérdezek.
(#) kapu48 válasza KoblogPerGyok hozzászólására (») Júl 4, 2023 /
 
Itt van egy példa: ESP32 digitális bemenetek és digitális kimenetek
Ennyi az egész nem kel bonyolítani!

Még ezt is javaslom: Bővebben: Link
A hozzászólás módosítva: Júl 4, 2023
(#) KoblogPerGyok válasza kapu48 hozzászólására (») Júl 4, 2023 /
 
Ok, kipróbálom mégegyszer, hátha elnéztem valamit. De le ellenörzöm mikrokontroller nélkül is mégegyszer.
Ha az R-2R létrát 8 biten hasznlom, akkor ha az MSB bitre küldök logikai feszt, és a többi szabadon lóg a levegőben akkor a felét kellene a kimeneten mérnem. De nem ez a helyzet.
Pár perc és összearakom megint, küldök képet.
Következő: »»   130 / 137
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