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



Teraz jest 3 lis 2024, o 14:50


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 115 ]  Przejdź na stronę Poprzednia strona  1, 2, 3, 4  Następna strona
Autor Wiadomość
PostNapisane: 21 sty 2012, o 04:21 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

elsat1 napisał(a):
Jak czytam twój post, to mam wrażenie że chcesz lekcji...podstaw od autora książki. Kliknij w wyszukiwarkę internetową np. "programowanie mikrokontrolerów" i znajdziesz wątki które będą ci przydatne w tym temacie. No ale z książką trzeba jeszcze się przespać :lol:



Nie wiem o co ci chodzi... ? Nie chce lekcji podstaw od autora książki, bo po to jest książka, żeby właśnie stamtąd zaczerpnąć wszelkich podstawowych informacji. I nie odkryłeś ameryki pisząc, żebym wpisał w wyszukiwarkę "programowanie mikrokontrolerów". Czytałem różne strony i różne kursy zarówno o programowaniu jak i o tworzeniu układów elektronicznych, ale chyba nie wiesz do czego służy forum. Tym bardziej jeśli opieram się głównie właśnie na książce i układzie, którego to forum dotyczy.

Jeśli Tobie po przeczytaniu książki (teorii) zawsze wszystko od razu wychodzi i nie potrzebujesz niczyjej pomocy to tylko gratuluje. Ja zacząłem swoją przygodę z elektroniką i mikroprocesorami od września, więc myślę że i tak mam spory postęp robiąc płytki dwustronne w SMD i próbuje zaprogramować własny układ wielozadaniowy. I to, że zadaję pytania (chociaż by po to, żeby się upewnić czy dobrze rozumiem jak coś działa) lub proszę o pomoc w rozwiązaniu problemu nie jest niczym dziwnym i nie oznacza, że sam nic nie robię, niczego nie czytam , nie szukam informacji i czekam na gotowe...

Może po prostu czujesz się taki super, że już nie pamiętasz jak zaczynałeś i nie jesteś w stanie zrozumieć jak można się pytać o takie "pierdoły"... I nie zarzucaj ludziom, że nie "śpią z książką" tylko dlatego, że zadają pytania, bo sam też zadajesz.... i może dla osób bardziej zaawansowanych twoje pytania też są pytaniami o "pierdoły" które przecież są gdzieś w książkach...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2012, o 16:52 
Offline
Użytkownik
Avatar użytkownika

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

PAX PAX miedzy chrześcijany -- każdy kiedyś zaczynał to pewne w mniejszym lub większym stopniu się borykał z problemami różnej natury.
i nie jest to ani ujma , ani chwała że pytania zadaje ten czy tamten. Podobno jestem zaawansowany .. a wiesz ile różnych głupich pytań zadaje
jak zaczynam gryźć nowy układ , czy urządzenie ??

Podobno kto pyta nie błądzi , ale też pytając można zbłądzić jak się zadaje niewłaściwe pytania
dlatego też uważajcie bo jakie pytanie taka odpowiedź .

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sty 2012, o 17:11 
Offline
Moderator
Avatar użytkownika

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

Dokładnie - ja też zachęcam do spokoju i stonowania nerwów. Tym bardziej, że po to powstało forum aby początkujący mogli w końcu wystartować. Mnie nie sprawia problemu odpowiadanie nawet na najprostsze pytania jeśli widać z pytań, że człowiek sam kombinuje jak może....

_________________
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: 22 sty 2012, o 00:00 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

Napotkałem na problem przy RTC, ale tym razem to wina programu.
Na swój układ wgrywam przykładowy program z płyty (08_TWI) i zegar działa bezproblemowo.

Wgrywając swój program na ten sam układ przez jakiś czas zegar działa dobrze (tzn godzina na wyświelaczu zmienia się) lecz po pewnym czasie (losowym) czas staje w miejscu. Przerwania od RTC dalej działają bo ustawiłem migającą diodę i miga równo co sekundę. Czyli tak jakby zawiesiło się samo wyświetlanie (aktualizowanie) czasu na wyświetlaczu.

Byłbym wdzięczy za spojrzenie na mój program:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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



Dziwi mnie, że układ początkowo normalnie wyświetla czas i dopiero po chwili (rzędu minuta - dwie) czas się zatrzymuje...

Żeby nie było dodam, że zmienne globalne mam zadeklarowane jako extern w pliku nagłówkowym moje.h



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2012, o 00:36 
Offline
Moderator
Avatar użytkownika

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

No i zrobiłeś dobry krok w celu sprawdzania przyczyny dając tę mrugającą diodę LED w przerwaniu. Teraz pójdź tą drogą dalej. Usuń mrugranie diodą z przerwania, i wstaw debugerową diodę do swojej funkcji zegar, żeby zobaczyć, czy przypadkiem program główny się gdzieś nie zawiesza ;) czy też cyklicznie przechodzi przez tę funkcję a tylko czas stoi w miejscu. Od razu wyciągniesz dwa różne wnioski:

1. albo program się zawiesza - więc masz jasny powód i szukasz dalej tym tropem co idzie nie tak
2. albo funkcja dalej działa, tylko że odczyty z RTC wciąż zwracają te same wartości - a jeśli tak to dlaczego - i znowu masz nowy trop

i znowu możesz myśleć gdzie dalej zakładać pułapki i szukać.....

sorry, że nie mam czasu na analizę takiego zbyt długiego kodu - ale wydaje mi się, że podpowiedź jak dalej szukać będzie równie pomocna, bo już i tak widać, że fajnie zaczynasz rozumieć i posługiwać się pułapkami i jednodiodowym debugerem ;)

_________________
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: 22 sty 2012, o 00:43 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

Dziękuje za wskazówkę :) wdrożę ja w życie i spróbuje coś wymyślić - napisze co zaobserwowałem :)

Nie szkodzi z tym brakiem czasu, przecież wiadomo, że nie tylko forum człowiek żyje, a i tak nie spodziewałem się tak szybkiej odpowiedzi :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2012, o 00:50 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

Program przestaje wchodzić w funkcję "zegar"

dodałem wyświetlanie wartości "int1_flag" na wyświetlaczu i zaobserwowałem, że o ile przy działaniu czasu wartość ta mruga (czyli szybka 1 i spowrotem 0) to przy zawieszeniu się zmiany czasu na wyświetlaczu wartość ta jest stale = 0. Jednocześnie dioda w przerwaniu mruga -> czyli tak jakby program wchodzi do przerwania, zmienia stan diody, ale przestaje ustawiać int1_flag na 1.... jak dla mnie to jakaś paranoja... :D



Ostatnio edytowano 22 sty 2012, o 01:11 przez grubson89, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2012, o 01:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 gru 2011
Posty: 204
Lokalizacja: Boguchwała
Pomógł: 3

grubson89 napisał(a):
Może po prostu czujesz się taki super, że już nie pamiętasz jak zaczynałeś i nie jesteś w stanie zrozumieć jak można się pytać o takie "pierdoły"... I nie zarzucaj ludziom, że nie "śpią z książką" tylko dlatego, że zadają pytania, bo sam też zadajesz.... i może dla osób bardziej zaawansowanych twoje pytania też są pytaniami o "pierdoły" które przecież są gdzieś w książkach...

Przepraszam Ciebie i wszystkich na tym forum. Ja też pytam na tym forum i dostaję odpowiedzi, ale nie o "pierdoły" jak to sam wyrażasz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2012, o 01:49 
Offline
Moderator
Avatar użytkownika

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

grubson89 napisał(a):
czyli tak jakby program wchodzi do przerwania, zmienia stan diody, ale przestaje ustawiać int1_flag na 1.... jak dla mnie to jakaś paranoja... :D


Jak możesz wyciągać wniosek, że przestaje ustawiać flagę na 1 ????

int_flag = 1;

jest pewnikiem i to nie może działać źle. Więc ja na twoim miejscu zastanowiłbym się dlaczego program nie wchodzi fo funkcji zegar ? a może w ogóle z niej nie wychodzi ? ;)

więc to żadna paranoja - to tylko twój błąd i trzeba go znaleźć.

Ja przede wszystkim podpowiadam ci że taka konstrukcja z dwoma pętlami nieskończonymi w main() to duże nieporozumienie. Już samym tym np zwiększasz niepotrzebnie stos.

Nie wspominając o tym, że w ogóle źle pojmujesz włączenie układu. Dla ciebie włączenie oznacza jakby czarodziejską inicjalizację LCD. A wspominałem już wcześniej o tym, że inicjalizację LCD daje się na początku main(), tam gdzie inicjalizujesz np timery, przerwania itp

Zatem już od tej strony budujesz program trochę jakby "do góry nogami" z mojego oczywiście punktu widzenia.

no i poza tym to pokaż jak ty badasz dalej tą diodą miejsce gdzie ci się program zatrzymuje ?

co to w ogóle jest run ?

_________________
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: 22 sty 2012, o 02:24 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

Z tym włączeniem układu chodzi mi o to żeby samo włączenie zasilania nie powodowało jeszcze włączenia wyświetlacza, diody itd... żeby dopiero wciskając przycisk POWER obserwowało się włączenie układu. Chodzi o sam efekt... Ale jeśli to jest bardzo niefortunnym pomysłem to może rzeczywiście będzie lepiej z tego zrezygnować. Ze zwiększaniem stosu się liczę, ale tak to myślałem, że nie powinno to za bardzo zaburzyć działania układu - po prostu program działa w innej pętli.

run - jest to zmienna ustawiana na 1 w funkcji start - docelowo chciałem jeszcze zrobić power off ustawiający run na 0 - czyli gasiłby się wyświetlacz i dioda - znów po prostu efekt zgaszenia.


Mam ustawione dwie diody:
- jedna zmienia swój stan przy wejściu w przerwanie od INT1 - i działa, cały czas mrugając
- druga zmienia swój stan przy wejściu w funkcję "zegar" - działa jakiś czas i potem przestaje mrugać (w tym samym momencie w którym zawiesza się czas na wyświetlaczu)
- dodatkowo ustawiłem wyświetlanie na LCD wartości int1_flag, jest to ustawione poza funkcją "zegar", bezpośrednio w pętli "while(run)" - dopóki czas się zmnienia widać mruganie tej wartości - czyli tez się zmienia, jak czas się zawiesza mam cały czas wartość 0.

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: 22 sty 2012, o 02:52 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

Usunąłem te zagnieżdżone pętle while, zostawiając standardowo tylko jedną, ale to nic nie zmienia.... zawieszka taka jak wcześniej.


- dodałem jeszcze na wyświetlacz zmienna Timer2 (timer programowy) której wartość powinna się zmieniać od 300 do 0 ( dla Timer2==0 wchodzi w funkcje "pomiar_co" i ustawia na 300) jednak wartość w ogóle nie maleje (a powinna w przerwaniu TIMER0), ustawia się na 300 i tak zostaje. Nie wiem czy to osobna sprawa czy może się jakoś łączą.... (dioda w przerwaniu TIMER0_OVF_vect mruga, a w funkcji "pomiar_co" już nie)

Chyba się muszę z tym przespać, bo już głupieje....



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2012, o 09:20 
Offline
Moderator
Avatar użytkownika

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

To pokaż jeszcze poprawiony kod - może łatwiej będzie coś z niego ogarnąć teraz ...

_________________
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: 22 sty 2012, o 10:58 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

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



Może problem tkwi gdzieś w zakresie zmiennych... ?
Po zdefiniowaniu ich w pliku źródłowym "moje.c" - deklaruje je w pliku "moje.h" jako:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.




Żeby lepiej było widać poprzesuwałem nawiasy.....



Ostatnio edytowano 22 sty 2012, o 14:08 przez grubson89, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2012, o 11:57 
Offline
Moderator
Avatar użytkownika

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

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


a nie:

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


jak widać nie trzymasz się standardów a przez to właśnie sam prosisz się o problemy, bo pewnie w innych miejscach też je pomijasz.

poza tym gdzie ustawiasz cyklicznie wartość Timer2 ?

a jeszcze gorsze jest to, że warunek if( int_flag ) robisz wewnątrz warunku if(timer2==0) - po co?

warunek if(int_flag) może przecież żyć w pętli głównej i tak będzie się wykonywał równo raz na sekundę.

a tak w ogóle to po co ci ten timer2 programowy ? skoro jak pisałem wyżej warunek z int_flag może żyć sam w pętli głównej?

Z tego wszystkiego wynika, że gdzieś ci się wszystko przepięknie zapętla niestety

_________________
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: 22 sty 2012, o 13:55 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

warunek if(int1_flag) jest bezpośrednio w pętli głównej (może niefortunnie nie widac nawiasu klamrowego zamykającego warunek if(Timer2==0) - jest on zaraz za wywołaniem funkcji "pomiar_co".

cyklicznie wartość Timer2 ustawiam na 300 w fukncji "pomiar_co" - czyli jesli Timer2 ==0 to wykonuje funkcję i ustawiam spowrtoem Timer2 na =300.
Timer2 programowy jest użyty, żeby wchodzić do funkcji pomiar_co co ileś sekund



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2012, o 15:20 
Offline
Moderator
Avatar użytkownika

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

Ok dobrze - rzeczywiście takie zastosowanie wcięć i nawiasów klamrowych prowadzi do oczopląsu więc nie zauważyłem. Masz rację że ten warunek jest poza.

W takim razie proponuję - o ile problem nadal występuje - robić kroki wstecz do wyeliminowania/znalezienia błędu.

Czyli pozbądź się kolejnych warunków i zostaw najzwyczajniej w świecie sam warunek z tą flagą, przy czym ja bym zerował falgę pod koniec tego warunku dla czytelności kodu a nie w funkcji, którą w warunku wywołujesz - rozumiesz ?

I wtedy zobaczysz czy czas ci działa poprawnie - jeśli nadal nie to jakby nie patrzeć - i tak dużymi krokami zbliżasz się do rozwiązania problemu. Byle się nie okazał jak to zwykle bywa w takich przypadkach problemem hardwarowym polegającym na błędach w połączeniach, zimnych lutach itp

_________________
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: 22 sty 2012, o 15:34 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

Rozumiem - czyli starać się po kolei upraszczać kod szukając przyczyny.... a jak będzie działało, to stopniowo dodawać i aż się znajdzie moment krytyczny :)

Problem hardwarowy wyklucza fakt, że na Pana przykładowym programie (08_TWI) zegar chodził całą noc i się nie zawiesił.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2012, o 16:48 
Offline
Moderator
Avatar użytkownika

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

grubson89 napisał(a):
Problem hardwarowy wyklucza fakt, że na Pana przykładowym programie (08_TWI) zegar chodził całą noc i się nie zawiesił.


No to tez już jakiś dobry wniosek. Myślę, że jak rozwikłasz ten problem - to zdobędziesz sporo cennego doświadczenia, ale pytaj dalej jak coś , ew pokaż jakiś uproszczony kod który nadal ci nie działa.

Troszkę się tylko obawiam, tych twoich innych plików, bo może tam też są błędy jakieś ?

_________________
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: 22 sty 2012, o 23:39 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

Błąd okazał się być w funkcji "pomiar_co"... ADC powodowało zawieszanie się programu, ale znalazłem błąd, poprawiłem i działa :) Błąd oczywiście jak to najczęściej był banalnie prosty (i chyba przez to właśnie trudny do zauważenia), ale dzięki Pana podpowiedziom udało mi się go zidentyfikować :)

To były dwa dni treningu w wyszukiwaniu błędów we własnym programie i analizowania poszczególnych jego fragmentów. Mam nadzieję, że będę to doświadczenie umiał wykorzystać przy kolejnych problemach. Aczkolwiek jeśli nie będę sobie radził skorzystam z Pana pomocy :)

Dziękuje bardzo za pomoc i wyrozumiałość :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 sty 2012, o 00:12 
Offline
Moderator
Avatar użytkownika

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

No ale właśnie nauka programowania to 50% nauka języka a drugie 50% to nauka rozwiązywania tego typu problemów, o czym niektórzy niestety zapominają. dlatego też w książce spory nacisk na to położyłem. A i na forum lepiej nauczyć kogoś jak rozwiązać problem zamiast pokazać palcem gdzie leży błąd.

_________________
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: 24 sty 2012, o 16:27 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

Mam pytanie w sprawie pamięci procesora. Po kompilacji uzyskuje:

Device: atmega8

Program: 7476 bytes (91.3% Full)
(.text + .data + .bootloader)

Data: 276 bytes (27.0% Full)
(.data + .bss + .noinit)

I chciałem się spytać jaką część pamięci zajmuje opcja bootloadera i czy ew. można z niej zrezygnować w jakiś sposób (zyskując na pamięci) i czy to się opłaca?

Bo zrobiłem 3 poziomowe menu z możliwością nastawiania czasu i daty i zżarło mi to dużo pamięci...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2012, o 16:45 
Offline
Użytkownik
Avatar użytkownika

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

Mirka bootloader zajmuje tylko 256bajtów , oczywiście ze możesz go wyłączyć tyle tylko ze stracisz możliwość wgrywania programu Via RS, ale przez programator bez problemu.

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2012, o 17:05 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

No to chyba zostawię, bo 256bajtow chyba i tak mnie nie zbawi :)

Dziękuje :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2012, o 17:11 
Offline
Użytkownik
Avatar użytkownika

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

Ja myślę że może warto by było nieco zoptymalizować kod samego menu lub lwiej części programu poprzez
użycie funkcji/podprogramów dla często wykonywanych operacji. Ewentualnie na skróty i użyć atmegi168 lub 328 :)

info:
ATmega8 --> 8KB Flash
ATmega48 --> 4KB Flash
ATmega88 --> 8KB flash
ATmega168 --> 16KB Flash
ATmega328 --> 32KB flash

Najuboższa pod względem wyposażenia jest atmega8 (nie chodzi o pamięć Flash) ale i jest najstarsza.
Wszystkie są zgodne pinologicznie.

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2012, o 18:01 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

No z optymalizacją kodu jeszcze u mnie ciężko, ale z czasem i tego postaram się nauczyć...

Przydatne info o tych procesorach, możliwe, że na ten czas skorzystam :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2012, o 18:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 24 paź 2011
Posty: 580
Lokalizacja: Warszawa
Pomógł: 0

Czy możesz udostępnić kod źródłowy programu?? z czystej ciekawości chciałem tylko zerknąć :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2012, o 19:00 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

całego programu? czy części z menu? :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2012, o 20:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 24 paź 2011
Posty: 580
Lokalizacja: Warszawa
Pomógł: 0

Jak możesz wrzuć całość w ".rar" chciałem zobaczyć jak to wygląda ponieważ w bascomie robiłem podobne :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sty 2012, o 19:08 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

Przepraszam ze dopiero teraz, ale miałem straszny sajgon i mi z głowy wyleciało....

Tu sa trzy pliki źródłowe: main.c, moje.c i menu.c
http://speedy.sh/hyYRm/zzkonkret.rar

Pozdrawiam :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sty 2012, o 01:49 
Offline
Użytkownik

Dołączył(a): 20 lis 2011
Posty: 51
Pomógł: 0

Mam pytanko....

Czy da się w jakiś sposób programowo wymusić reset układu (tak jak przy wciśnięciu przycisku reset) ?

W programie mam funkcję przeprowadzającą test urządzenia i chciałbym, żeby po niej nastąpił automatyczny restart. Tylko właśnie nie wiem czy to w ogóle możliwe do uzyskania w miarę prosty sposób?

Jeśli nie to zrobię komunikat na LCD, żeby użytkownik sam wcisnął reset, ale wolałbym automatyczny :)

Pozdrawiam.



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: 115 ]  Przejdź na stronę Poprzednia strona  1, 2, 3, 4  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 8 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