Arduino PROGMEM Nedir, Nasıl Kullanılır

Verileri SRAM yerine flash (program) hafızasında saklayabileceğinizi biliyor muydunuz. PROGMEM anahtar sözcüğü değişken bir değiştiricidir, yalnızca pgmspace.h dosyasında tanımlanan veri türleri ile kullanılmalıdır. Derleyiciye normalde gideceği SRAM yerine “bu bilgiyi flash belleğe koy” der.

PROGMEM, pgmspace.h kütüphanesinin bir parçasıdır. IDE’nin modern sürümlerine otomatik olarak dahil edilir, ancak 1.0 (2011) ‘in altındaki bir IDE sürümünü kullanıyorsanız, ilk önce aşağıdaki gibi kütüphaneyi sketchinize eklemeniz gerekir:

#include <avr/pgmspace.h>

const dataType değişkeniAdı [] PROGMEM = {veri0, veri1, veri3…};

dataType – herhangi bir değişken tipi
variableName – veri dizinizin adı

PROGMEM değişken bir değiştirici olduğundan, nereye gitmesi gerektiğine dair kesin ve hızlı bir kural olmadığından, Arduino derleyicisi aşağıdaki tanımları da kabul eder; Bununla birlikte deneyler, Arduino’nun çeşitli versiyonlarında (GCC versiyonuyla yapmak zorunda) PROGMEM’in başka yerlerde değil bir yerde çalışabileceğini göstermiştir. Aşağıdaki “string table” örneği, Arduino 13 ile çalışmak üzere test edilmiştir. Değişken adından sonra PROGMEM dahil edilmişse, IDE’nin önceki sürümleri daha iyi çalışabilir.

const dataType değişkeniAdı [] PROGMEM = {}; // bu formu kullan
const PROGMEM dataType değişkeniAdı [] = {}; // ya da bu
const dataType PROGMEM değişkeniAdı [] = {}; // bu değil

PROGMEM, tek bir değişkende kullanılabilse de, saklanması gereken, genellikle bir dizide en kolay olan (veya şu anki tartışmamızın ötesindeki bir başka C veri yapısına sahip olan) daha büyük bir veri bloğunuz varsa, yaygaraya değer. .

PROGMEM kullanmak da iki aşamalı bir prosedürdür. Verileri Flash belleğe aldıktan sonra, pgmspace.h kütüphanesinde de tanımlanmış, program belleğindeki verileri tekrar SRAM’a okumak için özel yöntemler (işlevler) gerekir, bu nedenle onunla yararlı bir şeyler yapabiliriz.

Örnek

Aşağıdaki kod, işaretsiz karakterleri (bayt) ve girişleri (2 bayt) PROGMEM’e nasıl okuyacağınızı ve yazacağınızı göstermektedir.

Arduino PROGMEM nasıl kullanıldığını öğrendik. İyi çalışmalar,

Thank you for reading!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.