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

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

certy

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

Kod Seç
unsigned char tsdata_1[8] = {0x050xAE0x060x010x000x000x000x00};
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ı;

Kod Seç
unsigned char tsdata_1[8] = {0x050xAE0x060x010x000x000x000x00};
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, 16:29:05Merhabalar. 8 elemanlı unsigned char tipinde bir dizim var.

Kod Seç
unsigned char tsdata_1[8] = {0x050xAE0x060x010x000x000x000x00};
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ı;

Kod Seç
unsigned char tsdata_1[8] = {0x050xAE0x060x010x000x000x000x00};
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 */
Dünyanın en büyük sorunu, cahiller özgüven içindeyken akıllı insanların kuşkuyla dolu olmasıdır.