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



Teraz jest 20 gru 2024, o 23:14


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 14 sty 2015, o 11:30 
Offline
Użytkownik

Dołączył(a): 12 mar 2014
Posty: 266
Lokalizacja: Warszawa
Zbananowany użytkownik

Pomógł: 2

Witam

Zaczynam zabawę z MkBootloader. Ogólnie wszystko już mi działa jak należy, tylko po załadowaniu programu przez bootloader program nie wstaje. Trzeba procek zresetować przyciskiem. Co może być przyczyną?

I druga sprawa którą "zaleczyłem", ale wymaga poprawy, to program MkBootloader w wersji 2.0.0 build 4. Niestety nie działa BLS stworzony w tej wersji dla ATMEGA328P. Może przyczyną jest brak opcji 7. Watchdog aktywny po resecie ? W starszej wersji 1.0.0 build 5 jest ta opcja i po jej zaznaczeniu BLS działa bez problemu. Można ładować zarówno ze starej wersji (idzie wolno) jak również z nowej (z turbodoładowaniem).

I trzecia sprawa. Chciałem przekopiować kod z zakładki Reset proc, ale niestety nie kopiuje się to do schowka. Musiałem ręcznie przepisywać.

_________________
Wysłane z Nokii 3310



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2015, o 12:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

Widząc Atmega328P tak popularną w arduino i MkBootloader to nic tylko Mirekduino mi przychodzi do głowy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2015, o 13:31 
Offline
Użytkownik

Dołączył(a): 12 mar 2014
Posty: 266
Lokalizacja: Warszawa
Zbananowany użytkownik

Pomógł: 2

Możesz jaśniej?

Po dalszych próbach dochodzę do wniosku, że pierwszy problem jest związany z brakiem wyłączenia Watchdoga po resecie. Niestety program jest napisany właśnie w ARDUINO. A kod ze strony http://atnel.pl/mkbootloader.html nie kompiluje się pod arduino. Umieściłem więc jedynie


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


Na samym początku funkcji void setup() i tu pewnie jest problem, bo może zostaje przekroczony czas?

Zmieniłem softwarowy reset na.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
bawiłem się czasami aż do 8S, ale to nie pomaga.

Jak prawidłowo wyłączyć watchdoga w Arduino?

------------------------ [ Dodano po: 51 minutach ]

OK, problem nr 1 rozwiązałem tak.

Na początku funkcji void setup() zostawiłem jedynie wpis

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


Pozostałe 2 linijki skasowałem i wygląda na to, że wszystko działa. W układzie docelowym zamontuję Bluetooth HC-06 i poprawki w sofcie, oraz aplikowanie nowych fukcjonalności będę mógł wkońcu robić bez rozkręcania obudowy. :D

_________________
Wysłane z Nokii 3310



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2015, o 14:35 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

Właśnie aż wziąłem ATmega328P .... wgrałem BLS za pomocą MkBootloader 2.0.0 build 4, i WSZYSTKO ŚLICZNIE ŚMIGA GRA I BUCZY

nie ma ŻADNEGO znaczenia w czym piszesz wsad, czy w Bascomie, czy w asemblerze, czy w C czy w Arduino ...... to KOMPLETNIE nieistotne

jeśli po załadowaniu program nie startuje to oznacza TYLKO jedno zrobiłeś babola. BLS wygenerowany przez MkBootloader spokojnie dba o wyłączenie watchdoga pomimo że nie ma już ptaszka ! absolutnie to nie jest problemem

problem może być że to TWÓJ wsad nie wyłącza watchdoga po starcie bo BLS zwraca sterowanie do WSADU RESTARTUJĄC w pełni procka i nie pozostawia po sobie śladów żadnych - więc jak mówię to ty musisz zadbać o watchdoga w prockach typu m88/168/328 itp

------------------------ [ Dodano po: 1 minucie ]

Radziu napisał(a):
Na samym początku funkcji void setup() i tu pewnie jest problem, bo może zostaje przekroczony czas?

oczywiście że to może być problem bo to się robi w sekcji INIT jeśli chodzi o język C .... a jak to robi Arduino ? - nie mam zielonego ani czerwonego pojęcia. Może warto zacząć jednak uczyć się programować w C ? ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2015, o 14:58 
Offline
Użytkownik

Dołączył(a): 12 mar 2014
Posty: 266
Lokalizacja: Warszawa
Zbananowany użytkownik

Pomógł: 2

Mirku, uczę się w C i to z BlueBooka ;) , jednak ten program napisałem już ARDUINO ponad rok temu i nieustannie go wzbogacam, raczej nie chciałbym go pisać od początku w C, tym bardziej że jeszcze za słabo znam C, żeby ogarnąć wszystkie funkcje jakie napisałem w Arduino.

Tak jak napisałem - już wszystko działa jak należy.

Pozostaje tylko problem trzeci nie da się kopiować kodu z zakładki reset proc w MkBootloader.

_________________
Wysłane z Nokii 3310



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2015, o 16:28 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

Radziu napisał(a):
Pozostaje tylko problem trzeci nie da się kopiować kodu z zakładki reset proc w MkBootloader.

ok - nad tym jeszcze popracujemy ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 lut 2017, o 12:53 
Offline
Nowy

Dołączył(a): 23 mar 2013
Posty: 11
Pomógł: 0

Witam serdecznie. Podepnę się trochę pod temat, być może ktoś się jeszcze odezwie.

Mam podobny problem z również z procesorem atmega328p. Postanowilem uruchomić stary projekt na tej płytce który wcześniej działał na arduino.
Generuję wsad bootloadera najnowszym programem v2.0.0 build11 i wszystko ładnie gra. Fuse bity ustawione:
Obrazek

Problem zaczyna się gdy chcę wgrać cokolwiek do procesora. Zacząłem oczywiście od prostego programu, który wygląda tak:
Kod:
#include <avr/io.h>
#include <util/delay.h>
#include <avr/wdt.h>

int main(void){
   wdt_disable();

   DDRD |= (1<<PD1);
   PORTD &= ~(1<<PD1);

   while(1){
      PORTD ^= (1<<PD1);
      _delay_ms(1000);
   }
}


Program waży 180B i dla pewności wyłączam w nim bootloader. Niestety pomimo wgrania programu procesor nie wstaje a na port UART wysyła cały czas "?". Zauważyłem, że jeżeli wgram większy program to procesor startuje ale zaczynają się dziać dziwne rzeczy z programem, Uart przestaje działać albo nie wysyła prawidłowo znaków.

Pomyślałem, że skoro bootloader jest osobnym "programem" to wylaczenie opcji "Boot reset vector" w mkavrbootloader powinno ominąć sekcję bootloadera i włączyć mój prosty program, niestety na UART dalej wysylane są znaki zapytania a program nie wstaje.

Generalnie nie ma znaczenia czy wygeneruję program z "plików źródłowych" czy z zakładek, zachowanie jest cały czas identyczne.

Co robić, jaka może być przyczyna takiego zachowania?



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 2 gości


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