Вопросы по собственным сборкам nodemcu прошивки из исходников.

Тема в разделе "ESP8266, ESP32", создана пользователем 8bitai, 3 июн 2023.

  1. 8bitai

    8bitai Нерд

    После перехода с версии 2.х.х на 3.х.х почемуто незаводится драйвер pcd8544_84x48.
    Собралось разумеется без ошибок.
    Вот собственно первый вопрос.
    я чтото упустил?
    Код (C++):
    NodeMCU 3.0.0.0
        branch: release
        commit: f25dc56d3c6213b8ac7ce46d1293466137746eae
        release: 3.0.0-release_20211229 +1
        release DTS: 202112300746
        SSL: false
        build type: float
        LFS: 0x20000 bytes total capacity
        modules: adc,bit,cron,encoder,file,gpio,gpio_pulse,http,i2c,mqtt,net,node,ow,pwm2,rtcfifo,rtcmem,rtctime,sntp,spi,tmr,uart,u8g2,wifi
    build 2023-06-03 12:56 powered by Lua 5.1.4 on SDK 3.0.1-dev(fce080e)
    > print(uart.setup(0, 115200, 8, 0, 1, 1 ))
    115200
    > dofile("dspinit.lua")
    Lua error:     dspinit.lua:11: attempt to call field 'pcd8544_84x48' (a nil value)
    stack traceback:
        dspinit.lua:11: in main chunk
        [C]: in function 'dofile'
        stdin:1: in main chunk
        [C]: ?
        [C]: ?
    >
    Код (C++):
    -- Variables
    PIN_CS  = 8 -- GPIO15, pull-down 10k to GND
    PIN_DC  = 4 -- GPIO2
    PIN_RES = 0 -- GPIO16
    M_BUS   = 1
    ---end
    --local function u8g2_prepare()
    -- Initialise module
    spi.setup(M_BUS, spi.MASTER, spi.CPOL_LOW, spi.CPHA_LOW, 8, 20)
    --gpio.mode(cs, gpio.INPUT, gpio.PULLUP)
    disp=u8g2.pcd8544_84x48(M_BUS, PIN_CS, PIN_DC, PIN_RES)
     

    Вложения:

    • user_modules.h
      Размер файла:
      2,9 КБ
      Просмотров:
      101
    • u8g2_displays.h
      Размер файла:
      11,3 КБ
      Просмотров:
      90
  2. serg3295

    serg3295 Гуру

    Если я не ошибаюсь, вы закомментировали абсолютно все драйвера экрана в файле u8h2_displays.h
    Поэтому в финальной прошивке их нет. О чём программа пользователя и сообщает вам в runtime.
     
  3. 8bitai

    8bitai Нерд

    Я бы сказал что вы ошибаетесь потому как я закомментировал только как мне казалось ненужные
    а именно все что выше этих строчек и только те какие относятся к драйверам дисплеев с I2C интерфейсом.
    Код (C++):
    #define U8G2_DISPLAY_TABLE_SPI \
    //  U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_128x64_noname_f, ssd1306_128x64_noname) \
      U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_pcd8544_84x48_f, pcd8544_84x48) \
    #else


    // SPI displays can be defined in an external file.
    //#define U8G2_DISPLAY_TABLE_SPI \
    //  U8G2_DISPLAY_TABLE_SPI_EXTRA


    #endif
     
    Оставив только тот какой и собрался подключать.
    И увы в такой конфигурации почему-то ничего не заводилось.
    Вчера после долгих поисков ни к чему не приведших просто ради эксперимента решил раскомментировать верхний драйвер ssd1306_128x64_noname какой был в файле по умолчанию и какой как мне казалось там присутствовать не должен раз уж мне нужен только pcd8544_84x48.
    После чего каким-то чудесным образом драйвер этого дисплея завёлся и таким образом мой вопрос разрешился.
    В атаче файл u8h2_displays.h с посути только разкоментированным ненужным драйвером и с каким драйвер pcd8544_84x48. стал работать.
     

    Вложения:

    • u8g2_displays.h
      Размер файла:
      11,3 КБ
      Просмотров:
      154
  4. serg3295

    serg3295 Гуру

    Вы раскомментировали оба драйвера. Это не чудо.
    Почитайте о действии обратной косой черты непосредственно перед символом конца строки. В том числе в однострочных комментариях С++.
     
  5. 8bitai

    8bitai Нерд

    Благодарю за разъяснения выходит тут закомментированы оба драйвера а не один?
    #define U8G2_DISPLAY_TABLE_SPI \
    // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_128x64_noname_f, ssd1306_128x64_noname) \
    U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_pcd8544_84x48_f, pcd8544_84x48) \
    а тут они оба раскомментировны?
    #define U8G2_DISPLAY_TABLE_SPI \
    U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_128x64_noname_f, ssd1306_128x64_noname) \
    U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_pcd8544_84x48_f, pcd8544_84x48) \