gcc ' de bug mı var ?

Başlatan magnetron, 25 Eylül 2023, 13:14:43

magnetron

merhaba forum,

CubeIDE ' de aşağıdaki kodu çalıştırıyorum
işlemci F4

ACCU1 = ACCU1 >> 1;

ACCU1 de satıra girerken 0x8000 var
çıkarken 0xc000 oluyor yani soldan 1 bit giriyor
oysa Kaan Aslan'ın kitabına bakıyorum soldan 0 girer diyor

test edebilir misiniz

teşekkür


quarko

Denedim hocam, bahsettiğiniz gibi olmuyor.

Değişken tanımlamasını aşağıdaki şekilde yaptım. Bir sağa kaydırınca, 0x4000 oluyor.

uint16_t ACCU1 = 0x8000;
"Vicdanın ziyası ulum-u diniyedir. Aklın nuru fünun-u medeniyedir. İkisinin imtizacıyla hakikat tecelli eder."

magnetron

teşekkür @quarko hocam, Cubeide yi 2 senedir güncellemedim ondan mı acaba

MCansız

merhaba bu işlem nerede yapılıyor ?
kod optimizasyonu açık mı ?

volatile uint16_t ACCU1 = 0x8000;

olarak tanımlayıp denemenizi öneririm.


quarko

Alıntı yapılan: magnetron - 25 Eylül 2023, 14:37:13teşekkür @quarko hocam, Cubeide yi 2 senedir güncellemedim ondan mı acaba

Rica ederim hocam. Güncel olmadığından kaynaklandığını düşünmüyorum esasen. Ama CubeIDE sık güncelleme yayınlıyor. Mevcut olanı kaldırıp, temiz bir kurulum yapmanızı tavsiye ederim. Workspace'inizi ne olur ne olmaz yedeklemeyi unutmayın. Belli olmaz.
"Vicdanın ziyası ulum-u diniyedir. Aklın nuru fünun-u medeniyedir. İkisinin imtizacıyla hakikat tecelli eder."

hasankara

Değişken tipi short olabilir mi?

magnetron

değişkenim int16_t

denemedim ama bu yüzden bu şekilde çalışıyor herhalde

başka bir şekilde çözdüm , cevaplara teşekkür ederim