bascom tak robi umiejscawia stosy na końcu z resztą można podejżeć adresy stosów "Show compile raports" jest tam wiele informacji na temat programu
To pewnie wynika z tego że powstało dużo różnych AVR`ów. Jeśli na początku ktoś korzystał tylko z jednego typu to mógł sobie w IDE ustawić konfigurację dla stosów a nawet wyświetlacza LCD czy I2C. Stąd dla wstecznej kompatybilności dalej tak można zrobić. Na przykład ustawienia dla stosów są tutaj tylko moje są już zmienione bo mogę szybko wkleić to...
GETRC5 używa licznika TIMER0. Albo TIMER2 jeśli go układ posiada i tak go skonfigurujesz w CONFIG RC5. Aby ustrzec się dziwnych błędów (z adresami linii poza programem) nie zapomnij o wpisaniu nazwy pinu w CONFIG RC5. Sam kod bazuje na dokumentach ATMELa: http://www.atmel.com/dyn/resources/prod_... I tam można całą procedurę prześledzić....
Spróbuj zmniejszyć prędkość ze 115200bps na 57600bps.
No i nic nowy nie reaguje, a stary nadal to samo:( A to zdjęcia: http://obrazki.elektroda.net/59_12368103... http://obrazki.elektroda.net/67_12368103... A programator ustawiłem tak samo jak w starej i nic, a mam taką własno róbkę STK200 A i jeszcze jedno? jak i do czego służą te stosy i ramki?
jak serialwotcher widzi tylko śmieci to znaczy że z prędkościami coś nie tak. sprawdz jeszcze raz wszystki częstotliwości kwarc i ustawienia bouów na kompie i w procku. mam też pytanie co do tego Waitms 500 'opóźnienie 100 ms przeciez waitms 500 da opóznienie 500ms a nie 100. czy to literówka czy coś innego Dodano po 3 acha i na wszeli wypadek poustawiaj...
Raczej nie ma takiego ograniczenia, kolejne definicje deflcdchar zastępują w pamięci poprzednie. Może masz zbyt małe stosy programowy i sprzętowy. Jeśli nie masz dodaj takie instrukcje: $hwstack = 128 $swstack = 128 $framesize = 128 128B to przykłady. Gdzieś na forum jest dokładny opis tych instrukcji.
Przez te 5 minut, serwer oczekuje aż wyślesz dalszą część zapytania. :) Wysyłasz: "GET /~test HTTP/1.1" , &H0D , &H0A "Host: 192.168.1.241" , &H0D , &H0A a powinno być: "GET /~test HTTP/1.1" , &H0D , &H0A "Host: 192.168.1.241" , &H0D , &H0A &H0D , &H0A
Kolego ostag . Powiedz mi , dlaczego "odświeżasz" wyświetlacz z częstotliwością aż 7812.5 Hz :?: 60-100Hz na 1 cyfrę wystarczy , a u Ciebie wychodzi 1562.5Hz na cyfrę :?: Marnujesz niepotrzebnie "moce przerobowe" proca ;) Czy tylko to co widać w kodzie , wysyłasz RS-em :?: Ustaw stosy na $hwstack = 48 $swstack = 32 $framesize = 32 Piotrek
Auto napisał: satanistik napisał: Program w przerwaniu od timera mierzy wartość z ADC Rozwiązanie dość kiepskie. Wchodzi w przerwanie, wyzwala pomiar, czeka na wynik W PRZERWANIU!, Nie twierdze że to jest rewelacja, ale samo w sobie nie powinno prowadzić do błędu w stylu "brak kolejnych pomiarów ADC". Co najwyżej do błędów czasowych i tylko wtedy kiedy...
Pozmieniałem sporo w programie. Zastosowałem się do sugestii skrócenia głównej pętli teraz praktycznie jest bardzo krótka a na końcu ma instrukcję waitms 400. Zauważyłem że program jest bardzo wrażliwy na długość głównej pętli gdy tylko znalazła się jedna linijka za dużo program odczytywał tylko wartość sekund z PCF8563P. Stosy ustawiłem na 128 a i...
Witam. Od końca: Kwarce najlepiej użyć takie, by odchyłka prędkości transmisji była jak najmniejsza (poniżej 5% powinno być ok.). Bascom ułatwia ich dobór. Wybierz z głównego menu Options => Compiler => Communication. W okienku które się otworzy wpisz/wybierz pożądaną prędkość transmisji, oraz częstotliwość rezonatora, a poniżej możesz odczytać jaka...
Może FreeRTOS; http://www.freertos.org/ Pozwala na pracę w trybie rzeczywistym Widziałem tam aplikację na AVR Atmega32 Dodano po 1 Ale to nie w Bascomie :( Dodano po 1 tylko w GCC :( Dodano po 1 Z tym, że tu raczej nie mówimy o programowaniu wątkowym tylko o pracy systemu w czasie "prawie" rzeczywistym. Dodano po 12 z przełączaniem w osi czasowej :),...
Poszukałem trochę dodatkowych materiałów do wchłonięcia przez moje szare komóreczki :) 13 Liczniki Słowo licznik to próba przetłumaczenia słowa timer. Ja używam tego słowa jako odpowiednika, ale nie wszyscy się z tym zgadzają i twierdzą, że należy używać słowa timer, gdyż nie można dokładnie przetłumaczyć znaczenia. Licznik to układ liczący o rozdzielczości...
Może i ja dorzucę swoje 3 grosze zanim zamkniecie. Kupiłem ową książkę (w księgarni) ,niestety miałem pecha ,bo płyta DVD uszkodzona i nie rusza (widać pęknięcie). Zwrotu nie chcieli przyjąć ,bo jak twierdzą sam zepsułem. Oczywiście uwielbiam robić sobie na złość!!! :/ i tak chwilowo zatrzymała się moja przesiadka na C. Czy warto kupować BASCOM ,uważam...
mam coś dla ciebie. działający prosty programik do testowania DS'ów Const Skip_rom = &HCC Const Convert = &H44 Const Read_sp = &HBE Const Write_sp = &H4E Const Copy_sp = &H48 Const Recall_ee = &HB8 Const Search_rom = &HF0 Const Read_rom = &H33 Const Match_rom = &H55 Const Alarm = &HEC Config Lcd = 16 * 2 Dim Scrachpad(8) As Byte Dim Tmp As Integer...
Mam dość spory program (ok. 9000 linii, zajmuje mi teraz 94% pamięci). Wszystko działa, ale czasem natrafiam na problem z ilością zmiennych lokalnych - np. w pewnej procedurze mam teraz 26 zmiennych lokalnych (o ile dobrze policzyłem :) ; Local A_var1 As Word , A_var2 As Word , A_var_dword As Dword Local A_adc0 As Word , A_adc0_disp As Byte Local Select_amp...
I działa to tylko dlatego że bufor został przesunięty???? Tak. Jeżeli zastosujesz taki kod: $regfile = "M32Def.dat" $crystal = 16000000 $hwstack = 128 $swstack = 64 $framesize = 64 '---------------------------------------... Dim Timer1_licznik As Byte Dim Buffer(256) As Byte At 1024 Dim Write_position...
' czestotliwość $crystal = 20000000 'procesorek Atmega8 mój ulubiony :) $regfile = "m8def.dat" '$regfile = "attiny2313.dat" 'stosy, jak program będzie działał to mozna je pozminiejszać $hwstack = 32 $swstack = 10 $framesize = 10 Const Ile = 12 ' ilość miejśc po przecinku w przyblizaniu, im wiecej tym dokładniej liczy ale...
Jaki masz zadeklarowany stos?
Zmień rozmiar stosów i ramki
Witam. Proszę Was o sprawdzenie poniższego kodu: Problem polega na tym że na LCD pokazuje się error=3 , a w symulacji error=0. Dalsze zwiększanie ramki to jakaś paranoja. Wyłuskałem ten kod z programu który ma kilkaset linii . Tam mam dopiero skutki przepełnienia stosu :-( . $regfile = "m32def.dat" ' specify the used micro $crystal = 8000000...
Ta książka to dobry pomysł jednak... Kolego kolego a gdzie pętla główna?:> Ładnie stos rozwalasz...
Jeśli Call to wywołanie funkcji z odkładaniem adresu powrotu na stos, to doprowadzasz do przepełnienia stosu.
Powinieneś sobie sam "ręcznie" ustawić takie parametry jak: $hwstack = 32 $swstack = 8 $framesize = 16 bo to od nich m.inn zależy ile Bascom będzie zjadał pamięci RAM na Stos, ramkę itp
W C sprawa wygląda tak samo .... No tu kolega troszkę przesadził chyba? ;) .... w C sprawa nie wygląda tak samo chociażby z uwagi na to, że byle makro ISR() nie odkłada i zdejmuje ze stosu absolutnie wszystkich rejestrów procesora co standardowo robi Bascom. A takich kwiatków jest znacznie więcej niestety :( tylko że kompilator C nie sygnalizuje błędu....
Przeanalizuj swoje odwołania poprzez GOSUB. Masz na 100% zapętlone i stos ci się przepełnia. Najpierw piszesz Gosub Standby a potem w tej procedurze Gosub Glowne , a tam znów Gosub Standby w jednym z warunków. I tak w kółko program sobie skacze i po dwa bajty na stos.
nie dość, że w przerwaniu dajesz opóźnienia waitms o czym wspomniał kolega powyżej - to jeszcze wyświetlasz coś w przerwaniu na LCD a to już msakra. do tego wszystkiego daj nie tylko dyrektywę informującą jaki zegar ale co najważniejsze dyrektywy ustawiające stos sprzętowy i programowy - dodatkowo zmień wtedy ich wartości na większe niż domyślne bo...
Aż mnie dziwi, że przy takiej ilości zagnieżdżonych skoków program się nie wysypuje. Albo może się wysypuje i stąd te dziwne wyniki. Za radą kolegi Mundi1970 zainteresuj się definicjami stosów i przebadaj zagnieżdżanie podprogramów.
ale z jakich powodów interesuje cie ten stos??
Rozumiem, że tych slave'ów jest kilka i tylko z tego jednego krzaczy, a z pozostałych slave'ów wyświetla poprawnie ? Jeśli tak to prawdopodobnie stos najeżdża na zmienne w programie mastera.
Wychodzisz z przerwania za pomocą GoTo. To jest problem. Ostatecznie nawet by to działało, ale przed GoTo musiał byś ręcznie zdejmować trochę rzeczy ze stosu. Ale grzebanie w stosie to raczej nie najlepszy pomysł. Musisz kompletnie zmienić koncepcję programu.
Wojtek - wchodzisz tutaj: [url=http://www.frank-zhao.com/cache/avr... z kalkulatorem 16MHZ z preskalerem 1024 oznacza że: - 1 sekunda nastąpi po 15625 cyknięciach timera - przerwanie następuje przy przepełnieniu jeśli wybierzesz OVERFLOW, ale może tez nastąpić przy COMPARE, od tego zależy jaką wartość wpiszesz do timera (czy odejmiesz...
1. W jakim celu konfigurujesz liczniki, wpisujesz im wartości początkowe, a potem wywołujesz ich zatrzymanie przez STOP TIMER0/TIMER2 skoro nigdzie indziej ich ponownie nie uruchamiasz? 2. Jakim cudem kompilator nie protestuje gdy w pętli głównej umieszczasz samo ON TIMER0/TIMER2 nie podając trzeciego słowa kluczowego GOTO/GOSUB i ostatniego ich parametru?...
Umieść zmienną po prostu na początku RAMu. Stos się rozrasta od tzw dupy strony :) Czyli od końca w kierunku początku. Gdzie się zaczyna RAM (pod jakim adresem) w datasheecie znajdziesz. Jak nie to użyj &h60 czy &60h nie wiem jak to się w baskupie zapisywało:) PS to się nijak nie ma do stosu :) I z czym można mieć problemy ze stosem w bascomie? (No...
W symulatorze możesz sprawdzić czy program nie nadpisuje stosu. Komunikat pokazuje się w dolnej części okna symulatora "Frame or software stack overlap", można też sprawdzić w zakładce "uP". Jeżeli nadpisało stos ustawiasz wartości dla stosów na początku programu np.: [syntax=basic4gl]$hwstack = 32 $swstack = 16 $framesize = 32 [/syntax]
A spróbuj zwiększyć stos.
Jak tam chcesz ale dla mnie to jak jazda pustym samochodem ciężarowym z załadowaną przyczepą. Próbowałeś zwiększać stosy?
"Case" nie powoduje zajmowania stosu. Więc z tego powodu na pewno nie.
Jest możliwy, trzeba tylko dbać o to aby nie przepełnić stosu.
Rzeczywiście :D Masz sporo skoków do podprogramów - jak tam stos?
Jest tak jak mówią (na 99%). Ten BASCOM nie obsługuje dobrze ATTiny2313. Da się to zrobić wstawkami asemblerowymi, ale jako że dopiero się uczysz a zaczynasz od BASCOMa to nie będę Ci mącił. Po prostu ściągnij nowszego BASCOMa. Po za tym na pierwszy rzut oka w kodzie brakuje ustawiania OC1A jako wyjścia: DDRB.3 = 1 Dodano po 7 A: On Compare1 Wpis Nosave...
Witam, gdzie można znaleźć przydatne informacje na temat debugowania za pomocą JTAG MKII? Program pisany w bascomie. Nie wiem co to np XYZ pointer itd.. Jakiś kurs? Porady? Zależy mi głownie na obserwacji stosu..
W symulatorze jest wszystko OK, może zwiększ stos? A jeśli chodzi o czyszczenie to chodziło mi o CLS. Próbowałeś zaokrąglić wynik przed wysłaniem go na LCD, przez funkcję np Round ?
Tylko nie zapomnij o tym, że masz też stos...
A jaki stos Ci BASCOM produkuje?
Gdzie i jak masz obsługiwane przerwania? Jak wygląda sprawa stosów/ramki?
Zauważyłem, zauważyłem, ale o tym że to teraz nieużywane już nie wspomniałeś Ty. Tak samo jak nie piszesz w kodzie jakie są rozmiary stosów i ramki. Dlatego czasem szkoda czasu na rozpatrywanie takich pytań jak o tyle rzeczy jeszcze trzeba dopytać... Napisz uczciwie ile miałeś poustawiane w IDE na te stosy ;) a najlepiej umieszczaj deklaracje w kodzie....
To bez znaczenia bo i tak wywala sie nawet na 2^2 :) Nie czytasz co piszą inni - stos :D Wklej na początku kodu ... $hwstack = 64 $swstack = 64 $framesize = 64 ... Piotrek
po pierwsze od RESETu do VCC daj rezystor max 10K i wyrzuć kondensator (tylko rezystor). Po drugie nie zapominaj nigdy o takim czymś jak kondensator 100n prawie wszędzie i blisko nóżek. Czyli w twoim przypadku dałbym ze 3 takie kondensatory 100n - jeden przed stabilizatorem drugi za stabilizatorem przy jego nóżkach a trzeci kondensator 100n przy nóżkach...
stosy węglowe ogniwo peltiera stosy bascom bascom enkodera
odinstalować adobe reader dokręcanie świecy subiekt faktury
ekspres saeco elektrozawory ekspres saeco elektrozawory
Samsung płyta indukcyjna - kod błędu C0 Model matrycy w telewizorze Samsung UE55MU6442U