А что там в скетче, если выкинуть SD, SPI и OLED? НИЧЕГО! - код на уровне примера блинк. Смотрели, сколько памяти занимает блинк? - посмотрите. 9 байт.
Так что для вашего скетча 40 байт - это много.
А что у нас блинк использует библиотечные функции ?
Просто я когда пишу, сколько занимает, это не значит , что я оставил голую библиотеку, я ей пользуюсь до сих пор.
А что там в скетче, если выкинуть SD, SPI и OLED? НИЧЕГО! - код на уровне примера блинк. Смотрели, сколько памяти занимает блинк? - посмотрите. 9 байт.
Было бы удивительно, если эта библиотека без буфера столько занимала, т.к. непонятно, куда можно деть такую прорву памяти.
Ну и потом - о чем мы спорим? вам же Ворота даже строчку процитировал. Найдите у себя в компе файл OLED_I2C.h. откройте - и примерно на 130 строке увидите вот это:
uint8_t scrbuf[1024];
проделайте лично, чтобы убедится - а то так и будете спорить.
Не пытайтесь уменьшать буфер в этой библиотеке - без серьезной переделки работать не будет. Найдите библиотеку без буфера. проверить просто - с ней ваш скетч без SD и SPI должен отсавлять свободными не менее 1500 байт оперативки.
Друзья, задам вопрос в тему названия, но не совсем в тему обсуждения. Имеется связка Ардуино + SD карта. На карте хранятся логи. Файлы большие, в ОЗУ держать никак, да и не страшны отключения в следствии потери питания... Записываю простым кодом:
#include <SPI.h>
#include "SdFat.h"
SdFat SD;
byte a = 128; // пример
myFile = SD.open("LOG.log", FILE_WRITE);
myFile.println(a);
myFile.close();
При необходимости, на запрос, Ардуино должна считать с лога конкретные байты и отправить их мне (на пример в Серал). Вот вопрос в том: как правильно сделать побайтовое чтение? Я не совсем понял приведенные примеры, по этому прошу помочь.
Вот так правильно будет?
myFile = SD.open("LOG.log");
if (myFile) {
symbol = myFile.read();
}
myFile.close();
- считывание одного элемента (первого). Я так понимаю, что если повторить несколько раз .read() то можно сместиться на нужную позицию, на пример на 10-й байт. А как сделать так, чтобы чтение шло сразу с 10-го байта?
На весь скетч и обработчик библиотеки 40 байт ???
Ну,ну.
А что там в скетче, если выкинуть SD, SPI и OLED? НИЧЕГО! - код на уровне примера блинк. Смотрели, сколько памяти занимает блинк? - посмотрите. 9 байт.
Так что для вашего скетча 40 байт - это много.
А что у нас блинк использует библиотечные функции ?
Просто я когда пишу, сколько занимает, это не значит , что я оставил голую библиотеку, я ей пользуюсь до сих пор.
Конкретно вот так
На весь скетч и обработчик библиотеки 40 байт ???
Ну,ну.
А что там в скетче, если выкинуть SD, SPI и OLED? НИЧЕГО! - код на уровне примера блинк. Смотрели, сколько памяти занимает блинк? - посмотрите. 9 байт.
Так что для вашего скетча 40 байт - это много.
Да, действительно, был не прав извиняюсь.
Изменил размер массива до [1],
Скетч стал занимать 41 байт.
Буду много думать.
Было бы удивительно, если эта библиотека без буфера столько занимала, т.к. непонятно, куда можно деть такую прорву памяти.
Ну и потом - о чем мы спорим? вам же Ворота даже строчку процитировал. Найдите у себя в компе файл OLED_I2C.h. откройте - и примерно на 130 строке увидите вот это:
проделайте лично, чтобы убедится - а то так и будете спорить.
Не пытайтесь уменьшать буфер в этой библиотеке - без серьезной переделки работать не будет. Найдите библиотеку без буфера. проверить просто - с ней ваш скетч без SD и SPI должен отсавлять свободными не менее 1500 байт оперативки.
Голая OLED_I2C , чуть больше 800 байт занимает.
Какой там килобайтный буфер ?
Не знаю, какую библиотеку ты используешь, но в оригинальнй от http://www.RinkyDinkElectronics.com/, см. строку 132, как я тебе писал.
Впрочем, тебя уже устроило, так что расслабься и продолжай один и тот же байт по 8 раз читать.
Друзья, задам вопрос в тему названия, но не совсем в тему обсуждения. Имеется связка Ардуино + SD карта. На карте хранятся логи. Файлы большие, в ОЗУ держать никак, да и не страшны отключения в следствии потери питания... Записываю простым кодом:
При необходимости, на запрос, Ардуино должна считать с лога конкретные байты и отправить их мне (на пример в Серал). Вот вопрос в том: как правильно сделать побайтовое чтение? Я не совсем понял приведенные примеры, по этому прошу помочь.
Вот так правильно будет?
- считывание одного элемента (первого). Я так понимаю, что если повторить несколько раз .read() то можно сместиться на нужную позицию, на пример на 10-й байт. А как сделать так, чтобы чтение шло сразу с 10-го байта?
я не копенгаген, но общепринятых системах
О! Спасибо большое!