8 elemanlı işaretsiz karakter dizisi içindeki elemanların değeri değiştirmek?

Başlatan certy, 12 Aralık 2018, 13:29:05

certy

Merhabalar. 8 elemanlı unsigned char tipinde bir dizim var.

unsigned char tsdata_1[8] = {0x05, 0xAE, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00};

Dizi içindeki 4. elemandaki 0x00 hex değerini bir döngünün içinde sürekli 4 arttırıp tekrar yerine koymak istiyorum. Yani 0x04, 0x08, 0x0C, 0x10... gibi. Basitçe mantıken şöyle bir şey denedim olmadı;

unsigned char tsdata_1[8] = {0x05, 0xAE, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00};
void loop()
{
   tsdata_1[4] = tsdata_1[4] + 0x04;
}

Sizce nasıl yapabilirim?
TA1USS

e-zeki

Olmaması için bir sebep yok, neden olmadı?
Debug yapabiliyor musunuz?

mufitsozen

Alıntı yapılan: certy - 12 Aralık 2018, 13:29:05Merhabalar. 8 elemanlı unsigned char tipinde bir dizim var.

unsigned char tsdata_1[8] = {0x05, 0xAE, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00};

Dizi içindeki 4. elemandaki 0x00 hex değerini bir döngünün içinde sürekli 4 arttırıp tekrar yerine koymak istiyorum. Yani 0x04, 0x08, 0x0C, 0x10... gibi. Basitçe mantıken şöyle bir şey denedim olmadı;

unsigned char tsdata_1[8] = {0x05, 0xAE, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00};
void loop()
{
   tsdata_1[4] = tsdata_1[4] + 0x04;
}

Sizce nasıl yapabilirim?

@certy

C dilinde dizi indexleri 0'dan baslar.
Dizinin 4. elemani ile islem yapmak icin index degeri olarak 3 kullanmaniz gerekir.

   tsdata_1[3] = tsdata_1[3] + 0x04; /* tsdata_1'in 4. elemanini 4 arttir */
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.