Program hafızadan pointer ile nasıl okunur?

Başlatan papylon, 11 Temmuz 2010, 22:08:25

papylon

Arkadaşlar, AVR'de program hafızaya kaydettiğimiz karakter dizisinin herhangi bir Byte'ına pointer kullanarak nasıl ulaşabiliriz.

HI-TECH C'de aşağıdaki gibi bir derleme yaptığımda gayet normal bir durumdu, fakat bu kodu AVR için, AVRGCC de derlediğimde, SRAM üzerinde işlem yaptığı için hatalı değer geri dönüyor.

const unsigned char MyChar[]= PROGMEM {0x10, 0x0C, 0x2A, 0x3B, 0x4D};

const unsigned char *s;
unsigned char a;
unsigned char b=1;

	s= &MyChar[0];	// MyChar[0]'ın adres değerini pointe'a yükle
	a= *(s+b);	/* pointer + b değişkeninin toplamının işaret ettiği strig değerini a değişkenine kopyala "a= 0x0C"	*/


Bu kod parçasını, program hafızada işlem yapacak şekilde nasıl derleyebiliriz?

papylon

Arkadaşlar sorun aşağıda ki sayfada, @parda'nın yardımı ile çözümlendi...

https://www.picproje.org/index.php/topic,28937.new.html#new