Raspberry Pico ya C++ ile Yazılımsal Reset Atmak

Gokrtl

Gökhan Kartal (TeknoDay)
Staff member
Katılım
27 Şubat 2019
Mesajlar
12,195
Sabahtan beri arıyorum, Raspberry pico ya c++ ile yazılımsal reset atmak hakkında hiç bir şey bulamadım.
Phyton dilinde machine.reset() komutu ile kolayca yapılıyormuş.
Pico üzerinde reset pini 30 numara olarak görünüyor ve üzerinde run yazıyor.
Bu verilere güvenerek c++ ile digitalWrite(30, LOW); yaptım. Amacım run pinini LOW'a çekip GND ye bağlamak ve bir buton ile HIGH komutu gönderdiğimde cihazın resetlenmesi idi. Ancak "30" pini doğru tanım değil. daha sonra 30 yerine "run" yazdım, bunuda kabul etmedi.
Bu duruma bir çare aramaktayım.

Birde şöyle bir şeye denk geldim ve aklıma şu soru geldi. Bu yabancılar ne zaman Türkler gibi düşünmeye başladı? :katil1:

pico reset.png
 
Sabahtan beri arıyorum, Raspberry pico ya c++ ile yazılımsal reset atmak hakkında hiç bir şey bulamadım.
Phyton dilinde machine.reset() komutu ile kolayca yapılıyormuş.
Pico üzerinde reset pini 30 numara olarak görünüyor ve üzerinde run yazıyor.
Bu verilere güvenerek c++ ile digitalWrite(30, LOW); yaptım. Amacım run pinini LOW'a çekip GND ye bağlamak ve bir buton ile HIGH komutu gönderdiğimde cihazın resetlenmesi idi. Ancak "30" pini doğru tanım değil. daha sonra 30 yerine "run" yazdım, bunuda kabul etmedi.
Bu duruma bir çare aramaktayım.

Birde şöyle bir şeye denk geldim ve aklıma şu soru geldi. Bu yabancılar ne zaman Türkler gibi düşünmeye başladı? :katil1:

16363 eklentisine bak
bu arada abi fiziksel pin numaraları onun GPIO numarasını ifade etmiyor
 
abi yapanların watch dog timer ile yaptığını görüyorum resetleme işlemini ama ben pico için bulamıyorum wdt örneği
 
Bende eve geçince datasına bakayım diyordum. :)
 
Burada işler biraz karışık.
Acaba reset kütüphanesi mi eklemek gerekiyor?
Yoksa reset_block(bit numarası); ile direk reset atıyor mu?

Kod:
#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/resets.h"
 
int main() {
    stdio_init_all();
 
    printf("Hello, reset!\n");
 
    // Put the PWM block into reset
    reset_block(RESETS_RESET_PWM_BITS);
 
    // And bring it out
    unreset_block_wait(RESETS_RESET_PWM_BITS);
 
    // Put the PWM and RTC block into reset
    reset_block(RESETS_RESET_PWM_BITS | RESETS_RESET_RTC_BITS);
 
    // Wait for both to come out of reset
    unreset_block_wait(RESETS_RESET_PWM_BITS | RESETS_RESET_RTC_BITS);
 
    return 0;
}
 
Burada işler biraz karışık.
Acaba reset kütüphanesi mi eklemek gerekiyor?
Yoksa reset_block(bit numarası); ile direk reset atıyor mu?

Kod:
#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/resets.h"
 
int main() {
    stdio_init_all();
 
    printf("Hello, reset!\n");
 
    // Put the PWM block into reset
    reset_block(RESETS_RESET_PWM_BITS);
 
    // And bring it out
    unreset_block_wait(RESETS_RESET_PWM_BITS);
 
    // Put the PWM and RTC block into reset
    reset_block(RESETS_RESET_PWM_BITS | RESETS_RESET_RTC_BITS);
 
    // Wait for both to come out of reset
    unreset_block_wait(RESETS_RESET_PWM_BITS | RESETS_RESET_RTC_BITS);
 
    return 0;
}
Bunu pico için derlemiyor hata veriyor
-

collect2.exe: error: ld returned 1 exit status
exit status 1
Raspberry Pi Pico kartı için derleme hatası.

-
 
Bunu pico için derlemiyor hata veriyor
-

collect2.exe: error: ld returned 1 exit status
exit status 1
Raspberry Pi Pico kartı için derleme hatası.

-
Benim attığım kodu derlemeye çalıştıysan yemez. Çünkü orada üç tane kütüphane include etmiş. Sende muhtemelen yok o kütüphaneler.
Telefondan tam beceremiyorum bakmayı.
 
Aslında çok ayrıntılı bakmadım. Belki de bu fonksiyon sadece çevre birimlerini resetliyor olabilir. Eğer full hardware reset gerekiyorsa, ya harici RUN pini üzerinden resetlenmesi lazım yada watch dog timer kullanılmalı. WDT yi yapılandıracaksın, sonra da tazelemeyince WDT bütün sistemi resetleyecek.
 
Benim attığım kodu derlemeye çalıştıysan yemez. Çünkü orada üç tane kütüphane include etmiş. Sende muhtemelen yok o kütüphaneler.
Telefondan tam beceremiyorum bakmayı.
Abi kütüphane yok demiyor
verdiği hata ;
collect2.exe: error: ld returned 1 exit status
exit status 1
Raspberry Pi Pico kartı için derleme hatası.
 
Bu gidişle smd 547 yi gömeriz buna :)

Abi kütüphane yok demiyor
verdiği hata ;
collect2.exe: error: ld returned 1 exit status
exit status 1
Raspberry Pi Pico kartı için derleme hatası.
Bildiğim kadarıyla arduino ide aşağıdan yukarı doğru derliyor kodları. O yüzden demek ki kütüphanelere sıra gelmeden başka bir yerde takılıyor.
 
Abi kütüphane yok demiyor
verdiği hata ;
collect2.exe: error: ld returned 1 exit status
exit status 1
Raspberry Pi Pico kartı için derleme hatası.

Hata o kadar değildir, başka şeyler de vardır. Ama bu linker hatası, yani gereken bir kütüphane tanımlanmamış.
 
c:/users/f/appdata/local/arduino15/packages/rp2040/tools/pqt-gcc/1.3.3-a-ed6d983/bin/../lib/gcc/arm-none-eabi/10.3.0/../../../../arm-none-eabi/bin/ld.exe:
C:\Users\f\AppData\Local\Temp\arduino_build_206850\sketch\sketch_mar27a.ino.cpp.o: in function `main':
C:\Users\f\AppData\Local\Temp\arduino_modified_sketch_898607/sketch_mar27a.ino:6: undefined reference to `stdio_init_all'
collect2.exe: error: ld returned 1 exit status
exit status 1
Raspberry Pi Pico kartı için derleme hatası.
 
Hazır kodu hemen kopyalayıp yapıştırmanın sakıncaları :D

Sadece şunları koy main içine:

Kod:
int main()
{
    reset_block(0xFFFFFFFF);
    unreset_block_wait(0xFFFFFFFF);
}
 

Çevrimiçi üyeler

Forum istatistikleri

Konular
7,285
Mesajlar
123,140
Üyeler
2,939
Son üye
Cano

Son kaynaklar

Son profil mesajları

Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Prooffy semih_s Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal taydin Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
Back
Top