Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => C/C++ => Konuyu başlatan: certy - 12 Aralık 2018, 13:29:05

Başlık: 8 elemanlı işaretsiz karakter dizisi içindeki elemanların değeri değiştirmek?
Gönderen: certy - 12 Aralık 2018, 13:29:05
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?
Başlık: Ynt: 8 elemanlı işaretsiz karakter dizisi içindeki elemanların değeri değiştirmek?
Gönderen: e-zeki - 12 Aralık 2018, 13:44:02
Olmaması için bir sebep yok, neden olmadı?
Debug yapabiliyor musunuz?
Başlık: Ynt: 8 elemanlı işaretsiz karakter dizisi içindeki elemanların değeri değiştirmek?
Gönderen: mufitsozen - 12 Aralık 2018, 17:24:16
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 */