#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/watchdog.h"
void setup() {
pinMode(25, OUTPUT);
digitalWrite(25, HIGH);
delay(500);
digitalWrite(25, LOW);
delay(500);
}
void loop() {
if (BOOTSEL) {
watchdog_enable(1, 1);
}
}
delay();
fonksiyonunu hiç bir şekilde görmüyor.#define AIRCR_Register (*((volatile uint32_t*)(PPB_BASE + 0x0ED0C)))
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(2000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(2000);
AIRCR_Register = 0x5FA0004;
delay(10000); (Çalışmıyor...);
}
#include "hardware/watchdog.h"; // Hardware Kütüphanesi (Sanırım bu çipin içinde bulunuyor.)
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(3000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(3000);
// 1) WDT yi yapılandır
// 2) WDT timeout'u minimum değer yap
// 3) Sonsuz döngüye gir ve işlemcinin resetlenmesini bekle.
// Bu watchdog'un çalışıp - çalışmadığını kontrol ediyor.
if (watchdog_caused_reboot()) {
printf("Rebooted by Watchdog!\n");
Serial.println("Watchdog Çalışltı");
} else {
printf("Clean boot\n");
Serial.println("Çalışmadı");
}
// 1- Watchdog yapılandırıldı.
// 2- İlk argüman, milisaniye cinsinden resetleme zamanını ayarlıyor. 2.Maddenin karşılığı olarak 1 milisaniye ye ayarlandı.
// 3- İkinci argüman, hata ayıklamada duraklamadır, bu, kod boyunca adım atarken watchdog'un duraklayacağı anlamına gelir.
watchdog_enable(1, 1);
// Bu watchdog'u güncelliyor. Olmasa da watchdog çalışıyor. Ne kadar gerekli emin değilim.
for (uint i = 0; i < 5; i++) {
printf("Updating watchdog %d\n", i);
Serial.println("Updating watchdog %d\n");
watchdog_update();
}
// Bu 3.Maddemiz olan sonsuz döngü. (Burada watchdog'u güncellemeyin yazıyordu nedenini anlayamadım.)
printf("Waiting to be rebooted by watchdog\n");
Serial.println("Waiting to be rebooted by watchdog\n");
while(1);
}
#include "hardware/watchdog.h"; // Hardware Kütüphanesi (Sanırım bu çipin içinde bulunuyor.)
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(3000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(3000);
// 1) WDT yi yapılandır
// 2) WDT timeout'u minimum değer yap
// 3) Sonsuz döngüye gir ve işlemcinin resetlenmesini bekle.
// Watchdog_reboot açıklamaları
// 1- İlk değer Sıfır ise, standart bir önyükleme gerçekleştirilecektir, sıfır değilse, sıfırlamada atlanacak program sayacıdır.
// 1.1- Bu, Şu demek; Eğer ilk değeri 2 girersek resetlerken 2 prgramı atlayacaktır. Buradaki "program" dan kasıt çevre birimi mi, yoksa yazılımsal birşey mi anlamadım.
// 2- İkinci değer, ilk değer sıfır değilse, kullanılan yığın işaretçisi olacaktır.
// 2.1- Bu da birinci parametrede belirtilen atlanacak programın hexadecimal adresi olsa gerek.
// 3- Üçüncü değer başlangıç sayaç değeri. Maksimum değer 0x7ffffff, yaklaşık 8,3 sn. (Bu değerin minimum karşılığını bulamadım.)
watchdog_reboot(0,0,0x7fffff); // Yapılandırma ve 8.3 Saniye timeout
while(1); //Sonsuz Döngü
}
#include "hardware/watchdog.h";
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
watchdog_enable(10000, 1); //10sn sonra reset
while(1); //Sonsuz döngü
}
#include "hardware/watchdog.h";
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
watchdog_reboot(0,0,0x7fffff); // 8.3 Saniye timeout
while(1); //Sonsuz Döngü
}
Niye led belirttiğim saniyede yanıp sönüyor?abi resetledikten sonra yazdığın hiçbir komut çalışamaz çünkü işlemci yeniden başlıyor orayı göremeden
abi sonsuz döngüye ne gerek var ben butona basınca watch dogu devreye sokuyorum 1 milisaniye zamanı doluyor ben 1 milisaniye içinde tazeleme yapmadığım için resetliyor işte1- Google dan kopya çekmişsin
2- 3 Adımı tam açıklamamışsın. Sonsuz döngü nerede?
3- Hakeme önceden bilgi verip etkilemeye çalışmışsın
@taydin hakem bekleniyor
Birbirimize girmeden hakem gelsinabi sadece watch dog eneable yetiyor resetlemeye biraz uzak yol olmamıs mı bu
Kurallar belli;abi sonsuz döngüye ne gerek var ben butona basınca watch dogu devreye sokuyorum 1 milisaniye zamanı doluyor ben 1 milisaniye içinde tazeleme yapmadığım için resetliyor işte
abi mevzu sonsuz döngüyse while(1) eklerim oraya .1- Google dan kopya çekmişsin
2- 3 Adımı tam açıklamamışsın. Sonsuz döngü nerede?
3- Hakeme önceden bilgi verip etkilemeye çalışmışsın
@taydin hakem bekleniyor
Kopya çektiğimi nerden anladın?abi mevzu sonsuz döngüyse while(1) eklerim oraya .
Abi sen benden çok kopya çekmişssin.
Hakem abimle dün akşam minik bir konuşmamız oldu abi etkileme falan yok
bir facebook grubunda paylaşımını gördüm abi.Kopya çektiğimi nerden anladın?
Etiketleme konuyu daha sonra ziyaret edecekler için açıklamaydı ve pdf den alındı o etiketler. Netten bulmadım yani
ahahahahahahabir facebook grubunda paylaşımını gördüm abi.
watchdog_enable
ile watchdog'u etkinleştirmek ve ondan sonra da sonsuz döngüye girmek. Sonsuz döngü önemli, çünkü resete kadar geçen sürede işlemcinin kesinlikle farklı birşey yapmasını istemezsin. Resete kadar o döngüde oyalansın istersin. Eğer reset zamanı uzunsa belki o sonsuz döngüde bir LED falan blink'lersin, ama önemli olan işlemcinin resete kadar kontrolsüz birşey yapmaması.abi ben gördüğüm ismi unutmam o çözen adamın adı bilgehandı.ahahahahahaha
Onların kendilerine hayrı yok yav. Kaç bin kişilik gruba yazdım, 1 kişi doğru cevap verdi o da watchdog değil. Yukarıda paylaştım zaten onuda.
Ve o konular Timur abi yarışma önermeden önce açılmıştı.
O değilde Timur abi pdf şart koşup yarışma önermese hayatta işim olmazdı pdf le. Belki hala google da resetleme arıyor olurdum şuan.
Bu gerçekten çok öğretici oldu. Ama malesef benim kafa kalın. Bir süre sonra unutuyorum. İnşallah sen bir daha unutmazsın. Bende sıkışınca sana sorarım