Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => C/C++ => Konuyu başlatan: magnetron - 25 Eylül 2023, 13:14:43

Başlık: gcc ' de bug mı var ?
Gönderen: magnetron - 25 Eylül 2023, 13:14:43
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

Başlık: Ynt: gcc ' de bug mı var ?
Gönderen: quarko - 25 Eylül 2023, 14:18:32
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;
Başlık: Ynt: gcc ' de bug mı var ?
Gönderen: magnetron - 25 Eylül 2023, 14:37:13
teşekkür @quarko hocam, Cubeide yi 2 senedir güncellemedim ondan mı acaba
Başlık: Ynt: gcc ' de bug mı var ?
Gönderen: MCansız - 25 Eylül 2023, 14:52:17
merhaba bu işlem nerede yapılıyor ?
kod optimizasyonu açık mı ?

volatile uint16_t ACCU1 = 0x8000;

olarak tanımlayıp denemenizi öneririm.

Başlık: Ynt: gcc ' de bug mı var ?
Gönderen: quarko - 25 Eylül 2023, 15:57:03
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.
Başlık: Ynt: gcc ' de bug mı var ?
Gönderen: hasankara - 28 Eylül 2023, 01:08:17
Değişken tipi short olabilir mi?
Başlık: Ynt: gcc ' de bug mı var ?
Gönderen: magnetron - 28 Eylül 2023, 09:54:21
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