Hirdetés

Új hozzászólás Aktív témák

  • fpeter84

    senior tag

    Miközben keresem az ideális alap hardvert a projektemhez, most az ESP32-höz érkeztem (azt keresem hogy egy adott LCD-t mivel tudnék a létező leggyorsabban meghajtani)...

    AVR-en, STM32-n, ATSAM-en működött simán, hogy egy regiszter aliasra hivatlkozva átírtam az adott regiszter értékét, például:

    REG_PIOD_PDR = (REG_PIOD_PSR & 0x00000030);

    Az ESP32-n viszont mintha ez körülményesebb lenne. A közvetlen elérésre ezt a hibát dobta:

    C:\Arduino\ESP32\projects\GPIO_test\GPIO_test.ino: In function 'void set_databits_input()':

    GPIO_test:7: error: lvalue required as left operand of assignment

    GPIO_ENABLE_W1TC_REG = 0x000FF000;

    ^

    exit status 1
    lvalue required as left operand of assignment

    A hw könytárban lévő kódokat túrva 2 azonosan működő megoldást találtam eddig:

    ESP_REG(GPIO_ENABLE_W1TC_REG) = 0x000FF000;
    vagy
    GPIO.enable_w1tc = 0x000FF000;

    Ami viszont nem igazán normális, hogy nem történik meg azonnal a regiszter állítása! Ha abban a pillanatban visszaolvasom a GPIO_ENABLE_REG értékét akkor még az előzőt találom benne, ha berakok 1ms várakozást akkor már azt aminek lennie kell! Mi a fene okozhatja ezt a jelenséget? Így nem igazán lehet kimaxolni a GPIO írás olvasás sebességét közvetlen eléréssel... :F

Új hozzászólás Aktív témák