Tüm dallanmalardan çıkıp main foksiyonuna nasıl dönülür

Başlatan izturk, 15 Aralık 2014, 13:47:18

F493

Muhtemelen senin fonksiyonlarinin geri donus degeri void türden
Yani void calculate (void) şeklinde. Derleyici void fonksiyonlarda otomatik return koyar sorun yok.

tekosis

* tüm cevapları okumadım ama şu şekilde yapabilirsin. reset atmadan önce eepromun misal 0x0f adresine eğer kendin reset atıyorsan misal 0xcc yazdır. sonra cihaz ilk açılış anındaki 0x0f eeprom adresine baksın eğer içeriği 0xcc ise önce ekran animasyonları, marka model yazmaları es geçersin ve algoritmana göre istediğin main noktasından devam edersin. (bu olay her açılışta tekrarlanmasın diye 0x0f içeriğini manual resetten sonra normal çalışma moduna dönüş anlamında kullanabileceğin 0xaa gibi bir içerikle doldur. )

* eğer cihaz kendi resetlenirse 0x0f eeprom adresinde daha önceden doldurulan 0xaa bilgisi olacağı için açılışı normal yapar.

* bu sistemle reset atmadan önce bulunduğun noktaya ait bir veriyi 0x0f adresine yükler, açılışta bu bilgiyi kontrol eder, resetten sonra istediğin yere programı yönlendirebilir ya da main fonksiyondan itibaren normal bir şekilde başlatabilirsin.
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.

izturk

tekosis hocamın dediği gibi eepromdan kontrol ederek reset_cpu(); yaptım. şimdilik bi problem yok gibi. Herkese çok teşekkür ederim.

İyi çalışmalar.

aliveli


elektronart

Bir durum değişkeni tanımlayabilirsin. Başa dönmen gerektiğinde
durum = RESET; yaparsın. Başa döndüğünde de
durum = RUN;
Alt alta dalladındığın tüm fonksiyonların döngüsünün içine
if(durum == RESET) break;
gibi bir karşılaştırma koyarsan başa dönmek istediğinde sırayla tüm fonksiyonların döngüsünden çıkılır ve başa dönüşür.
Açık Elektronik