Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 30 sty 2025, o 18:39


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 22 lip 2016, o 12:49 
Offline
Użytkownik

Dołączył(a): 09 cze 2015
Posty: 39
Pomógł: 0

Witam. Napisałem program w CooCox, który wyświetla napis w terminalu, chcę, żeby po wciśnięciu przycisku napis się nie wyświetlał, a gdy się puści przycisk napis znów był wyświetlany.


Mam taki kod napisany.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Teraz próbuję dopisać obsługę przycisku.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jest ktoś w stanie podpowiedzieć jak zrealizować taki program?



Ostatnio edytowano 22 lip 2016, o 15:29 przez Jitkino, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 lip 2016, o 15:10 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8598
Pomógł: 337

Popraw wklejanie kodów ...

bo tego się nie daje czytać , a zasady na forum jawnie mówią co i jak należy wstawiać

topic14999.html

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lip 2016, o 07:24 
Offline
Użytkownik

Dołączył(a): 25 lip 2015
Posty: 140
Zbananowany użytkownik

Pomógł: 18

Sprawdzanie stanu przycisku, za pomocą przerwania od zewnętrznego pinu to kiepski pomysł. Druga sprawa ten 'while' w procedurze przerwania? Pomijam już, że brakuje tam chyba dalszego ciągu.

Jitkino napisał(a):
Jest ktoś w stanie podpowiedzieć jak zrealizować taki program?

W pętli głównej odczytaj stan przycisku;
Jeżeli przycisk wciśnięty nie wysyłaj niczego,
w przeciwnym wypadku wyślij napis.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lip 2016, o 20:24 
Offline
Użytkownik

Dołączył(a): 09 cze 2015
Posty: 39
Pomógł: 0

Coś takiego napisałem ale nie działa. Dobrze kombinuję?

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lip 2016, o 20:35 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8598
Pomógł: 337

Jeśli Nie używasz :
tiny_printf() dostarczone przez newlib,
to przyczyną może być sposób działania printf() gdyż jest ono buforowane aż zostanie odebrany znak CR/LF.
oczywiście Można zmusić pamięć do zwolnienia się poprzez:
fflush (stdout);
Sprawdz czy ci się ruszyło z flushem printf() ?

------------------------ [ Dodano po: 5 minutach ]

CocoX Coide ostatnio się strasznie zepsuło
nie działa wiele rzeczy a wersja 2 wciąż jest niestabilną betą ...
i w zasadzie nie do użycia , może czas się przesiąść na TrueStudio
też za free i bez ograniczeń

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lip 2016, o 20:42 
Offline
Użytkownik

Dołączył(a): 09 cze 2015
Posty: 39
Pomógł: 0

fflush (stdout);
Wrzucić w while pod "send_string"?

Wyrzuca mi błąd przy ostatnim nawiasie zamykającym maina, ale wszystko wydaje się ok z nawiasami.

Dodałem inicjacje UART
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Przy ostatnim nawiasie mam error : "error: expected declaration or statement at end of input"

Nie miałem 1. nawiasu zamkniętego.

Teraz mam błąd:
[cc] C:\CooCox\CoIDE\workspace\ProjChip\cmsis_boot\startup/startup_stm32f10x_md.c:214: undefined reference to `main'
[cc] collect2.exe: error: ld returned 1 exit status
Jakiś pomysł jak to rozwiązać?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lip 2016, o 07:21 
Offline
Użytkownik

Dołączył(a): 25 lip 2015
Posty: 140
Zbananowany użytkownik

Pomógł: 18

Ten, kod który wrzuciłeś, w ogóle się nie skompiluje. Pewnie dlatego, że w funkcji "void EXTI15_10_IRQHandler()" brakuje jednej klamry zamykającej. Pomijam, że brakuje instrukcji po drugim if, więc flaga przerwania zostanie wyzerowana, tylko wtedy, gdy na pinie wejściowym jest stan niski, oraz, że funkcja obsługi przerwania nie robi zupełnie nic, po za sprawdzeniem czy występuje stan niski na pinie.

Patrząc na kod, czy to nie jest SPL?

SunRiver napisał(a):
Jeśli Nie używasz :
tiny_printf() dostarczone przez newlib, ...
Co ma wspólnego printf z tym kodem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO