Tanımladığım global değişken kesme içinden neden değiştirilemiyor

Başlatan XX_CİHAN_XX, 27 Ocak 2013, 14:50:27

XX_CİHAN_XX

Garip bir durum var 2 tane değişkenim var birini kesme geldiğinde çalıştırdığım fonksiyondan değiştirebiliyorum diğerini değiştiremiyorum.
ikiside ayrı fonksiyonlarda tanımlı ama global değişkenler. Extern parametresi ile kesme fonksiyonunun olduğu bölgeye aktarılıyor.
Bunun özel bir sebebi var mıdır çözemedim?

Edit:
Sorumu şu şekilde düzenliyorum external int kesmesinden değiştirme yapabiliyorum ancak systick kesmesi içinden değişkeni değiştiremiyorum derlerkende herhangi bir hata almıyorum değişkenlerle ilgili
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

haydarpasamikro

Mikro Dünyası.Haydarpaşa Teknik ve Endüstri Meslek Lisesi Mikrodenetleyici Atl. Şefi

XX_CİHAN_XX

Sorunu çözdüm ama garip bir durum. External kesme fonksiyonumla systick kesme fonksiyonumu aynı yere taşıyınca sorun düzeldi. Kesme değişkenlerim volatile olarak tanımlıydı zaten ama bu şekilde yapınca sorun düzeldi sebebini anlamadım.
Örneğin:
delay.c dosyam var. Görmesini istediğim değişkenlerim ve bu değişkenlerin kullanıldığı fonksiyonlar burada.
stm32f4_it.c dosyasında systick kesme fonksiyonum var. delay.c deki değişken ve fonksiyonları kullanıyor.
touch.c dosyasında da harici kesme fonksiyonum var. Yine delay.c deki bir değişkeni değiştiren bir kesme fonksiyonu.

Bu yapıdayken düzgün çalışmıyordu. kesme fonksiyonlarımın hepsini delay.c ye taşıdım sorun düzeldi.
delay.c deki değişkenleri diğer dosyalara extern ile geçiriyordum nitekim derleyici bir sorun çıkarmadığı halde kesme fonksiyonlarım bu değişkenleri değiştiremiyordu nedense ama xxx.c deki bir değişkenleri değiştirebiliyordu işin garibi.
Neden bilmiyorum ama kesme fonksiyonlarını delay.c ye taşıyınca sorun kalmadı.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

haydarpasamikro

o zaman delay.c dosyası projeye dahil edildi mi? veya başlıkta prototipleri tanıtıldı mı?
Mikro Dünyası.Haydarpaşa Teknik ve Endüstri Meslek Lisesi Mikrodenetleyici Atl. Şefi

XX_CİHAN_XX

Hepsi yapıldı aksi halde derleyici hata verirdi zaten delay.c deki fonksiyonları sadece kesme içinde değil birçok yerde kullanıyorum. sadece kesme fonksiyonunun içinde böyle birşey oldu nedense..
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.