Bu tarz bir programlama mümkün mü?

Başlatan picmanya, 14 Haziran 2024, 19:19:42

papsukkal

Ben bu tarz işlem gerektiğinde genelde byte cinsinden bayraklar tanımıyorum. Farklı fonksiyonlara da gitse bayrağa bakıp işlem yapıyorum.

picmanya

#16
Alıntı yapılan: mehmet - 15 Haziran 2024, 14:07:44Switch-case ile şartlarınıza göre ana döngünüzü yazın. Gerekli değişkeni de; interrupt, harici girişlerle değiştirirsiniz. Buna göre kodlar istediğiniz şekilde çalışır.

Böyle çalışır zaten, buna itiraz edemem. Bir şekilde yapılır edilir çalıştırılır. Yalnız ben bu şekilde yapmak istemiyorum.
Yada geçici olarak mecburen bu tarz klasik yöntemlerle yapsamda. Asıl olarak anlattığım tarzda nasıl yapıldığınıda öğrenip yapmak isterim.

Alıntı yapılan: sadogan - 15 Haziran 2024, 16:04:04Interrut rutininden veya subritinden return kullanmadan ayrıldığınızda stack taşması olur.

Bunların önlemini alıpda öyle sıçramayı planlıyorum. Yapmak istediğimle direkt alakalı olmadığından bu konuya girilmedi.
Donanımsal kesme interrupt-fonksiyonlarında çözüm çok kolay olur. İlgili flağı sıfırlar çıkarız. Kullanıcı tanımlı fonksiyonlarda ise gereken önlemler alınırdı. Fonksiyon ona göre tasarlanırdı.
Olmadı global değişkenlerle iş kotarılırdı. Öncelikli amaç önce yapmak istediğim kısım, sonrasında arıza çıkaran yerlere ayrıca bakılır.

Çözümü henüz bulamadık. Herkese Hayırlı Bayramlar Dilerim. Hoşcakalın.

mehmet

C ile yazacaksanız Basic kodlama mantığını bırakmanız gerekmekte. Özellikle interrupt fonksiyonundan elinizi kolunuzu sallayarak çıkamazsınız.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

mustafa_cmbz

Alıntı yapılan: mehmet - 15 Haziran 2024, 22:59:12C ile yazacaksanız Basic kodlama mantığını bırakmanız gerekmekte. Özellikle interrupt fonksiyonundan elinizi kolunuzu sallayarak çıkamazsınız.

Aynen öyle c de klasik bir durum var goto komutunu sevmez derler c ile yazanlar.

Ben Basic ten uzun yıllar sonra geçin ce epey sıkıntı yaşadım daha yeni yeni alışıyorum.

C de fonksiyon lar çok esnek kullanımı çok hoş hatta proton son versiyonların da da eklemişler fakat bir fonksiyon çağırdığını da başka bir fonksiyona yada fonksiyon altındaki etikete goto ile dallanıp işlem yapamıyorsun.

Çünki bir fonksiyonu çağırdığında iki parantez içindeki işlemi yapıp işlem bittiğinde geri parantez sonunda otomatik geri dönmesi bekleniyor. Sen o fonksiyon içinde başka bir fonksiyona dallanıp o dallandığın yerde işlem bittiğinde main'e nasıl dönecektim ben ya diyor anladığım kadarıyla bu gittiğin ve döneceğin yer burada ortaya çıkıyor işte.

picmanya

#19
Alıntı yapılan: mehmet - 15 Haziran 2024, 22:59:12C ile yazacaksanız Basic kodlama mantığını bırakmanız gerekmekte. Özellikle interrupt fonksiyonundan elinizi kolunuzu sallayarak çıkamazsınız.
İnterrupt fonksiyonunu içindeyken; fonksiyonun tam olarak kendiliğinden bitmesine müsade etmeden, yarım bırakıp nasıl çıkılabilir?

sadogan


picmanya

#21
return ifadesiyle çıkılır çıkılmasına ama;
sıçrama yapmadan önce ve sonra, sanıyorum return iş görmez gibi duruyor.
sıçrama ve return ifadesi; ikisi peş peşe ve aynı anda kullanılamayacaktır.

Alıntı yapılan: mehmet - 15 Haziran 2024, 22:59:12C ile yazacaksanız Basic kodlama mantığını bırakmanız gerekmekte. Özellikle interrupt fonksiyonundan elinizi kolunuzu sallayarak çıkamazsınız.

bu kısmın tercümesini ben şöyle anladım;
interrupt fonksiyonu içindeki herhangibir yerden,
while() döngüsü içerisine, çok sert bir şekilde direkt olarak sıçrama yaparken;
hem düzgün bir şekilde intterrupt fonksiyonundan çıkılmalı, hemde yapılmak istenilen sıçrama işlemi layıkıyla yapılabilmeli.

Bu nasıl olacak peki? Henüz sıçrama faaliyetinin nasıl yapılacağı ortada yokken.  Önce bir sıçrasaydık sonradan çıkacak problemlere bakılabilirdi.

SIÇRAMANIN NASIL YAPILDIĞINI, BEN ÖNCELİKLİ OLMAK ÜZERE, HENÜZ BİLEN ORTAYA KOYAN YOK.

sıçrama yapılabileceğide kesin değil gerçi.

sadogan

#22
Rutin içinde sıçrama yapabilirsiniz ancak
RUTIN DIŞINA ÇIKMANIZA C İZİN VERMEZ.

mehmet

Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

picmanya

#24
Bu kısıma forum içi aratma ile ulaşamamıştım. Aratma kriterlerim yetersizde kalmış olabilir. webde aratınca karşılaştım.
https://www.picproje.org/index.php/topic,46931.45.html
Burada;

Z
nin sorduğu bir soruya,
bluekid
in verdiği cevapla,
mufitsozen
in de katkılarıyla,

Aradığım tarzda çözüme ulaştım. Kendilerine çok teşekkür ederim.

Daha öncesindeki aramalarımdada aynı ipucuna ulaşıyordum.

Bu konu benim açımdan kapanmıştır.

SERRO EFE

Yeri değil ama; çözüm üretenlerin ismini okuduğumda yokluklarına bir kere daha üzüldüm. Gerçekten foruma ekstra değer katan kendi alanlarında bilgi ve foruma destekleri ile yeri doldurulamayan üyelerdi. Yoklukları gerçekten üzücü :'(

Epsilon

#26
OG,Müfit Sözen çok bilgili forum üyeleri idi Allah(C.C) onlara rahmet etsin.
Gerbay yine  muazzam C ve elektronik bilgisine sahipti.Yazılım konusunda çok iddialı değilim ama onun yazdığı ufak bir kodu görünce ne kadar bilgili olduğunu hemen daha ilk satırlardan anlayabiliyordunuz.Bildiğim kadarıyla forumdan tüm mesajlarını silerek ayrılmıştı.Ne kadar büyük bir kayıp.
Yinede arada bir foruma şöyle bir bakıyordur sanırım .

Bülent Hoca da çok bilgili idi, yalnız biraz cümleleri karşıdakinin yanlış anlamasına sebep olabiliyordu. Şimdilerde mekatronik.org sitesine takılıyor.

Yine o forumda @czorgormez in bu forumda da üye olduğunu ama topu topu 3-5 mesajının olduğunu gördüm.Diğer forumda 7-8 ayda 900 e yakın mesajı olmasına rağmen burada o kadar senede 3-5 mesajının olmasına sebep belli bir mesaj  sayısına kadar yayınlanması için onay beklemesi olabilir
Yine mesela o  forumda  clc nickli yine çok bilgili bir başka arkadaş da var .Büyük bir firmanın AR-GE sinde çalışıyordu.

@czorgormez gibi elektronik bilgisi  çok üst seviyelerdeki kişilerden onaylama zorunluluğunu kaldırılabiliyorsa kaldırılmalı bence