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

Gokrtl

Gökhan Kartal (TeknoDay)
Staff member
Katılım
27 Şubat 2019
Mesajlar
11,180
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?

C++:
#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?

C++:
#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:

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

Çevrimiçi üyeler

Forum istatistikleri

Konular
5,659
Mesajlar
97,342
Üyeler
2,438
Son üye
İbrahimSönmez

Son kaynaklar

Son profil mesajları

cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Kesici/Spindle hızı hesaplamak için SpreadSheet UDF'leri kullanın, hesap makinesi çok eski kalan bir yöntem :)
Dr. Bülent Başaran,
Elektrik ve Elektronik Mühendisi
Yonga Tasarım Özdevinimcisi
Üç güzel "çocuk" babası
Ortahisar/Ürgüp/Konya/Ankara/Pittsburgh/San Francisco/Atlanta/Alaçatı/Taşucu...

Back
Top