W Twoim wypadku jest to portb. A w moim portb jest zajęty to sprawdziłem na portd. Deklaracja $crystal jest do niczego nie potrzebna dopóki nie korzystasz z bibliotek czy podprogramów wykorzystujących zależności czasowe. A tych w Bascomie jest mnóstwo. UART, LCD, SPI itd. Tak że lepiej jest ustawiać $crystal taki jaki jest naprawdę.
1. Zwiększ parametry hwstack, swstack, framesize 2. uprość ten program do testów. Ogólnie metodyka testów wygląda tak, że jak coś Ci nie działa to zostawiasz w programie TYLKO kod odpowiedzialny za tę właśnie rzecz i dopiero po jej uruchomieniu dopisujesz (przywracasz) resztę.
Ile zadeklarowałeś HWstack SWstack i Framesize?
Zapoznaj się z $hwstack, $swstack i $framesize.
W symulacji pomogło to: $hwstack = 64 $swstack = 64 $framesize = 64
Napisz: [syntax=vbnet]$regfile = "attiny2313.dat" $crystal = 8000000 $hwstack = 24 $swstack = 16 $framesize = 32[/syntax] Miłego dnia ;)
Witam ! Dodaj te trzy linijki do programu, jako trzecią, czwartą i piątą linię. [syntax=basic4gl] $hwstack = 8 $swstack = 8 $framesize = 8 [/syntax]
Pierwsze co bym zrobił, to dopisał na początku programu np.: [syntax=basic4gl]$hwstack = 128 $swstack = 128 $framesize = 128[/syntax]
Wstaw to i powinno się udać. Nie chce mi sie tego tłumaczyć setny raz więc chyba poświecę temu zagadnieniu raz jedną stronę na swojej witrynie i będę tylko linkował :D [syntax=vbnet]$Regfile="attiny13a.dat" $crystal=9600000 $hwstack = 4 $swstack = 2 $framesize = 20[/syntax]
Forum Elektroda ma swój player i możliwość takiego dodawania filmu do postu żeby się wyświetlił i nikt nie musi niczego ściągać. Takie czasy, że każdy się dwa razy zastanawia zanim coś ściągnie i uruchomi na swoim komputerze. Umieszczając film w playerze zwiększasz szansę że ktoś go obejrzy ;) Co do oprogramowania to całkowicie podstawową sprawą jest...
Jak w tytule, korzystając z funkcji DTMF out w Bascomie udało mi się wygenerować "jakiś" sygnał. .................. W moim programie nie ma żadnej instrukcji $crystal bo nie wiem czy powinna być. Podaję kod programu odpowiedzialny za wysyłanie DTMF: Jeżeli w programie /listingu nie ma podanego taktowania lub wybranego processora oraz wartości dla:...
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
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
Witam. Komunikat o bledzie jest o takiej tresci: Error : 22 Line : 173 Out of SRAM space Dodaj taki fragment na początku kodu: [syntax=vbnet]$hwstack = 8 $swstack = 8 $framesize = 8[/syntax]
Pootwieraj wszystkie i szukaj jednego z deklaracją mikrokontrolera. Tylko jeden będzie miał wpis i tylko ten się kompiluje. $nocompile
Proponuję na początku programu (np. po deklaracji częstotliwości) dodać: $swstack = 64 $hwstack = 64 $framesize = 32 i przetestować jeszcze raz. Pozdrawiam Andy
Witam ! Dziękuję szun działa bardzo dobrze. Jeszcze mam pytanie czy da się przerobić tak aby wrzucić to na procek attiny13? bo akurat taki mam a szkoda atmega8 na taki czasowy układ Do swojego programu ( ATtiny13 ) dodaj te linie: $hwstack = 32 $swstack = 0 $framesize = 12 Pozdrawiam. Stefan
Po pierwsze który to Bascom i jakie są wartości $hwstack, $swstack i $framesize w IDE bo stamtąd je bierze jeśli nie umieścisz tego w kodzie. Na przyklad jesli nie użyjesz Nosave to Bascom potrzebuje około 32B na odłożenie rejestrów i wykorzystuje do tego $HWstack. Do tego w przerwaniu masz Lookup() który potrzebuje kolejne cztery bajty. Jak masz za...
Jtag możesz wyłączyć nawet w kodzie: [syntax=vbnet]$regfile = "m32adef.dat" $crystal = 8000000 $hwstack = 64 $swstack = 32 $framesize = 32 Disable Jtag[/syntax] Do tego wszystkie aliasy przycisków powinny się odnosić do PIN a nie PORT. W niektórych masz PINA i tam jest dobrze ale niektóre masz PORTD i tam zawsze mikrokontroler będzie odczytywał 0.
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]
Można zrobić tak: $hwstack = 32 $swstack = 32 $framesize = 32 Dim Aa As Double Dim B As Double Aa = 5 Aa = Aa / 6 Print Aa B = Sin(0.2) Print B Do Loop End ...i będzie działać ! Pozdrawiam...
...również odnośnie tych paramterów $hwstack, $swstack, $framesize i ustalania ich wartości nie jestem jeszcze w pełni świadomy jak z nich korzystać. http://www.elektroda.pl/rtvforum/topic32... natomiast odnośnie samej funkcji, którą fajnie rozpisałeś i dzięki to jednak mam pytanie - bo nie widzę w niej zdeklarowanych parametrów jakie chciałbym...
Zwiększ HWSTACK. Dla prostych programów możesz zignorować takie ustawienia jak $HWSTACK, $SWSTACK, $FRAMESIZE, ale przy rozbudowanych programach warto policzyć czy wszystko gra.
[syntax=vbnet]$regfile = "m328pdef.dat" $crystal = 4000000 $hwstack = 40 $swstack = 16 $framesize = 32 Dim Chrg_status As Byte , Helpb As Byte Do Helpb = Charge_detect 'odczytaj stan wejścia If Chrg_status <> Helpb Then 'tylko jesli różni się od poprzedniego stanu Chrg_status = Helpb 'zapamiętaj stan If Helpb = 1 Then Gosub Buzzer 'tylko jeśli...
No to spróbuj tego: $regfile = "m16def.dat" $crystal = 4000000 $hwstack = 32 $swstack = 32 $framesize = 32 config 1wire= portb.7 Do 1wreset if err=0 then print "PP_ok" ' czy LCD "PP_OK" - co tam masz else print "PP_err" ' j/w endif waitms 500 Loop Napisz o wyniku doświadczenia :D Piotrek
Zadeklaruj ile i gdzie chcesz przydzielić pamięci. Przykładowo $hwstack = 32 $swstack = 18 $framesize = 8 Połączenie ATTiny13 z bascomem to fatalne rozwiązanie, ale przy odrobinie samozaparcia da się coś zrobić. Z tymi ustawieniami udało mi się użyć 6 zmiennych, przy czym program w symulatorze i tak szedł w krzaki. Jak będziesz pisał to musisz unikać...
Nie wiem o co chodzi- czy mu się zasoby skończyły...? Pamiętaj o tym, że istnieją dyrektywy $hwstack, $swstack, $framesize. W poprzednich wersjach źle był domyślnie ustawiony $swstack.
zapewne masz problem ze stosem. Jeśli po ograniczeniu ilości zmiennych które deklarujesz program działa , a tylko zmiana wielkości rozmiaru tablicy wpływa na to że program się wiesza to napewno tak jest. Spróbuj albo dać większy procek (z większym Ramem) lub też zwiększ rozmiar stosu. W bascomie służą do tego te polecenia $hwstack $swstack $framesize...
Dzięki, czasami wystarczy trafnie zadane pytanie - brakowało mi dyrektyw: $hwstack, $swstack, $framesize. Dane zapisują mi się jak poniżej: - w przypadku gdy zmienne są typu String: "407""258" "406""258" - jak są typu Word 406 259 406 259 a ja bym chciał bez tabulatora miedzy tymi dwoma danymi - o właśnie tak: 406259 406259 jak to można ustawić ?
9600000Hz/70000Hz=137 takty 9600000Hz/150000Hz=64 takty Z takimi rozdzielczościami się tam musisz liczyć. Dla 37kHz i innych konfig uzyskasz klikając CTRL+SPACE. Bascom sam podpowiada jakie masz możliwe ustawienia. Nie pamiętam tylko czy jest to FastPWM czy PhaseCorrect który jeszcze spowolni sprawę o połowę. W Tiny85 masz Timer który może być taktowany...
Hej, zumek : czy dla $regfile = "m128def.dat" $crystal = 11059200 wartości: $hwstack = .. $swstack =.. $framesize = .. ...będą takie jak wcześniej podałeś??? Dzięki!!
Mówisz masz na timerze. $regfile = "m16def.dat" $crystal = 1000000 $hwstack = 32 $swstack = 8 $framesize = 16 Config Timer1 = Timer , Prescale = 1024 Enable Interrupts Enable Timer1 Start Timer1 On Timer1 Odmierz_czas Const T = 6942 Config Portb.1 = Output : Portb.1 = 1 : Led Alias Portb.1 Config Portb.2 = Input : Portb.2 = 1 :...
I nie rozwiązałem tego problemu.... A jak u Ciebie wyglądają , poniższe parametry :?: $hwstack = ?? $swstack = ?? $framesize = ?? Jeśli wartości są mniejsze niż ... $hwstack = 48 $swstack = 24 $framesize = 24 ... , to Twój przykład z 1 postu , działał nie będzie. Przy mniejszych wartościach , już na poziome konfiguracji TCP/IP , symulator "twierdzi"...
Na początek zwiększyłbym stos ;) ($hwstack, $swstack i $framesize).
Jeślii masz wolny pin to możesz sobie na nim otworzyć port COM. Taki programik wciągający cztery bajty po serialu zajmuje w Bascom 288 B a to pewnie dlatego że jeszcze musiał się zająć stosem i tablica przerwań co Ty juz pewnie tez masz zrobione więc to by odpadło. Zapisujesz to sobie do Eeproma przy starcie i gotowe. [syntax=vbnet]$regfile = "attiny13A.dat"...
Sprawdziłem ten kod przed chwilą i jeśli na PD6 jest przycisk.. to jego kolejne naciskanie włącza lub wyłacza naprzemiennie diode LED na pinie PORTD.7 100% tested [syntax=vbnet]$regfile = "m644pdef.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 Pcmsk3 = &B01000000 Enable Pcint3 : On Pcint3 Pcint3_isr Config Portd.6 = Input : Set...
Teraz działa: [syntax=basic4gl]$regfile = "m128def.dat" ' specify the used micro $crystal = 16000000 ' used crystal frequency $hwstack = 32 $swstack = 32 $framesize = 32 $sim Dim Z_rs_str As String * 64 Dim Kolor_temp As Byte Dim Kolor_hex As String * 2 Dim Kolor_wynik As Single Z_rs_str = "10FFFFFF" 'pobieramy z hex kolor dla RED Kolor_hex = Mid(z_rs_str...
Czy ATmega8535 ma tylko mierzsyć napięcie i wysyłać? Jeśli tak to po co taki duży uK do tego? :) Program może wyglądać tak: $regfile = "m8535.dat" $crystal = 16000000 $hwstack = 32 $swstack = 10 $framesize = 40 Dim W As Word Config Watchdog = 2048 Start Watchdog Reset Watchdog Config Adc = Single , Prescaler = Auto , Reference = Internal Start...
...Temperatura pokazuję co jakiś czas błędny pomiar np 124 , 32 , 98 procek się resetuje chińskie znaki raz na jakiś czas ... A czy zdajesz sobie sprawę z tego, że przerwania "rozwalają" Ci transmisję 1wire :?: Poza tym, co z niżej wymienionymi dyrektywami Bascom-a :?: [syntax=basic4gl]$hwstack $swstack $framesize [/syntax] Wiedz, że kod(listing) programu,...
Zobacz to i wyciągnij wnioski [syntax=vbnet]$regfile = "m88pdef.dat" $crystal = 1000000 $hwstack = 40 $swstack = 16 $framesize = 32 '$sim Cursor Off Cls Config Portd.0 = Output Config Timer1 = Timer , Prescale = 8 , Clear Timer = 1 , Compare A = Disconnect , Compare B = Disconnect Compare1a = 62500 On Compare1a Beep Enable Compare1a Enable Interrupts...
powoduje miganie diody w bardzo nie regularnych odstępach czasu - widać to "gołym okiem". Na dodatek trudno nazwać te odstępy "pół sekundy". ... Na początku mam jeszcze: $hwstack = 32 $swstack = 8 $framesize = 16 Bez tego nie idzie zadeklarować żadnej zmiennej - "out of SRAM". Dyrektywa CRYSTAL tylko informuje kompilator o częstotliwości generatora....
marcinek.p - to gotowiec dla ciebie, nie mam jak go przetestować ale jestem pewien że zadziała jak trzeba. Masz tu przerwanie, miganie led i zliczanie migniec z incr Mozna to wszystko wkleic do przerwania ale dobra zasada nakazuje w przerwaniach umieszczać jak najmniej kodu. [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 1000000 $hwstack = 32 $swstack...
$HWstack = 64 $SWstack = 64 $Framesize = 64
[syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 'timer '16MHz 16000000(16MHz)/256(Prescaler)=62500 i odejmij jeden Config Timer1 = Timer , Prescale = 256 , Compare_a = Disconnect , Compare_b = Disconnect , Clear Timer = 1 Enable Compare1a : On Compare1a Timer1_isr : Compare1a = 62499 '1s (at)16MHz...
(at)emarcus: O ile się nie mylę, przy prescalerze 64 i cżestotliwości 8MHz timer0 będzie miał skok co 8us, czyli licznik bedzie przepełniał się co 2,048ms, więc do poprawnego odliczenia 1s w obsłudze timera należy załadowywać do niego Timer0 = 6, i dodać licznik, który 500 razy zliczy przepełnienia. A co do tych parametrów, to zawsze wstawiałem domyślne...
W itam. Kiedyś próbowałem zrobić odbiornik RC5 na ATtiny13V lecz próba skończyła się fiaskiem, ponieważ w BASCOM'ie nie da się na ATtiny13 przypisać zmiennych typu Byte. A jednak, przeglądałem internet w poszukiwaniu nowych pomysłów na urządzenia i natrafiłem na program gdzie gość programuje ATTiny13 z 5 zmiennymi Byte , 1 Integer(!) , i 4 typu Bit...
Daj prosty krótki kod który można potestować to się do tego zerknie. Napisz kod typu: [syntax=vbnet]-procesor -crystal -hwstack -swstack -framesize -baud -konfiguracja lcd Do If Przycisk.. Lcddat cośtam Print costam End If Loop[/syntax] I na końcu napisz, że to nie działa a nie każ ludziom zgadywać jak to podłaczyłeś Raz się spotkałem z tym że jakaś...
Zajętość flash`a z 46% na 38% :P Tak bym się nie bawił, ale w Tiny13 to ma znaczenie bo można coś jeszcze upchnąć ahahaha :D [syntax=vbnet]$regfile = "attiny13.dat" $crystal = 9600000 $hwstack=20 $swstack = 8 $framesize = 16 'Declare Sub Zmiana Config Pinb.2 = Input Set Portb.2 Config Portb. 4 = Output Config Servos = 1 , Servo1 = Portb.4 , Reload =...
A coś takiego trzeba dodać.... [syntax=basic4gl] $hwstack = 8 $swstack = 8 $framesize = 8[/syntax]
nie kompiluje się ten kod. Wskazuje bład w linii Dim Ab(6) As Byte At A Overlay jest nieprawidłowy adres. A którą wersją Bascoma posiadasz :?: jak wstawie zamiast zmienej "A" np adres &H60 to kompiluje tyle że na terminalu dostaje 32 jedynki i 16 zer...:( A czego sie spodziewałeś :?: Sprawdź jeszcze "option" w Shiftin , czy odczytuje dane na właściwym...
Możesz wykorzystać Lookup do pobierania elementu z tablicy. Tylko pasuje żeby dane w linii Data były tego samego typu, można zrobić tak że "AUTO" będzie równe 0, a "OFF" równe 255. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 16000000 $baud = 19200 $hwstack = 64 $swstack = 64 $framesize = 64 Dim G As Byte , Nr_elementu As Byte Nr_elementu = 0...
$hwstack = 256 $swstack = 256 $framesize = 500 Nie za rozrzutnie to trochę ustawione?
[syntax=basic4gl] $regfile = "m644pdef.dat" $crystal = 16000000 $baud = 9600 $hwstack = 64 $swstack = 64 $framesize = 64 'konfiguracja pinow wyswietlacza LCD; inicjalizacja wyswietlacza Config Lcd = 20 * 4 Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 Cursor Off Noblink Cls Dim Wart_adc...
A może: $HWStack = 32 $SWStack = 32 $FRAMESIZE = 32 ?
Czy jest możliwy błąd podłączenia? Tutaj oczywiście zmieniłem na PB.1 Tak, wszystko jest możliwe... Spróbuj ten code: [syntax=basic4gl] 'DS18B20 - ROM reading test from single sensor DS18B20 $regfile = "m8adef.dat" $crystal = 4000000 $hwstack = 80 $swstack = 80 $framesize = 40 Config 1wire = Portb.1 'Config 1wire = Portd.5 Dim N As Byte Dim Dsid1(8)...
Witam Mam bardzo dziwny problem z działaniem programu napisanym w Bascom. Program jest napisany na AT90CAN128 i po skompilowaniu zajmuje 58% pamięci programu. Program kompiluje się prawidłowo - bez błędów, ale podczas działania program się sypie - błędy na wyświetlaczu graficznym, a nawet restart procesora. Wystarczy jednak że usunę kilka linii kodu...
Mnej więcej tak by wyglądał program: [syntax=basic4gl] $regfile = "ATtiny13.DAT" $crystal = 1200000 Config Pinb.0 = Output Portb.0 = 0 Led Alias Portb.0 $hwstack = 8 $swstack = 8 $framesize = 8 Do Led = 1 : Wait 1 : Led = 0 : Wait 1 Led = 1 : Wait 1 : Led = 0 : Wait 1 Led = 1 : Wait 1 : Led = 0 : Wait 1 Led = 1 : Wait 3 : Led = 0 : Wait 1 Led = 1 :...
Jeżeli masz kłopoty ze stabilnością programu, to może na początek zwiększ wartości stosów. [syntax=basic4gl]$hwstack = 128 $swstack = 128 $framesize = 128[/syntax]
Można dopisać takie funkcje żeby niepotrzebnie nie ustawiał wartości portów jeśli te się nie zmieniły, ale to chyba gra nie warta świeczki :D Pominąłem PORTD bo widzę tam jakąś transmisje RS w configu. [syntax=vbnet]$regfile = "m128def.dat" $hwstack = 80 $swstack = 80 $framesize = 160 $crystal = 8000000 $baud = 19200 Config Porta = Output Config Portb...
pozostałe 2 piny pracują tylko ten jeden nie , zmieniłem i tez to samo . Nie wiem czy to nie wina $hwstack = 32 $swstack = 12 $framesize = 8 ale tak głęboko nie siedzę w temacie
$hwstack = 120 $swstack = 48 $framesize = 96 Na pint int0 podawany jest sygnał co 1s z pcf'a i w tym przerwaniu mam licznik i obsługę DS'a
Diody migają po dwa razy, kolejne dwa razy zawsze po naciśnięciu przycisku, tak w kółko. Jak nie naciskam to nic się nie dzieje. Zdaje się że taki zamiar był tego programu... Niemniej jednak spróbuj ten code: [syntax=basic4gl][/syntax ... $regfile = "attiny13.dat" $crystal = 9600000 Config Portb = &B011000 Portb = &B000010 $hwstack...
$regfile = "m8def.dat" $crystal = 4000000 $hwstack = 40 $swstack = 16 $framesize = 32 Taką konfigurację generuje BASCOM dla Atmegi8, gdzieś indziej widziałem: $crystal = 16000000
Kolego może zacznij od czegoś prostszego bo nieskomplikowane zadanie a tu wydaje się być inaczej. Programowanie to nie tylko znajomość mikrokontorlerów, języków ale przede wszystkim umiejętność samodzielnego rozwiązywania problemów i wiążąca się z tym pomysłowość. Żeby przetestować ten kod wziąłem drugą Atmegę8 i kazałem jej nadawać impuls co 500ms...
(at)grala1Ten Twój kod jest trochę za prosty i z czasem zgubi synchro niemniej jak wrzucisz ten poprawiony na symulator, albo nawet uruchomisz na żywca z tym co Tobie tam nadaje to na chwile powinien podziałać ;) Lepiej byś odbierał znaki w przerwaniu do bufora. Procesor na nic by nie czekał i miał czas na inne sprawy. Do tego synchro, jakis timeout...
Spróbuj jeszcze dać: $hwstack = 32 $swstack = 8 $framesize = 24 Bo ty masz coś małe te wartości.
Proszę, może to Cię zachęci do przeczytania reszty we własnym zakresie. Program "miga" nośną 38kHz co 1ms ;) http://obrazki.elektroda.pl/5631733100_1... [syntax=vbnet] $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 32 $framesize = 32 Config Timer2 = Timer , Prescale = 1 , Compare = Toggle , Clear Timer = 1 Compare2...
Właśnie o to mi chodziło ;) PS. nie mogę dołączyć obrazka ... ?? A mnie się pokazało coś takiego po wybraniu m8def.dat: $regfile = "m8def.dat" $Crystal=4000000 $hwstack=40 $swstack=16 $framesize=32
Jednak posiadam wersję Bascoma 1.11.7.4 która niema ograniczeń co do wielkości kodu wynikowego jednak w tej wersji kompilator nie chce rozpoznać tych instrukcji: Czy tyle wystarczy?? $hwstack = 32 $swstack = 10 $framesize = 40 zgłacza taki error: Assigment error [$hwstack:112 32:112] Assigment error [$swstack:112 10:112] Assigment error [$framesize:112...
Troszkę za dużym ogólnikiem rzuciłem... Tak, stos to HW Stack (sprzętowy) i Soft Stack (programowy). Należało by zwiększyć rozmiar stosu sprzętowego, bo używasz przerwania od Trmer1. Wywołanie obsługi przerwania powoduje zajęcie 32 bajtów stosu (czyli tyle, ile masz zadeklarowane), a nie tylko do tego jest on używany. Możesz ustawić np. dwukrotnie więcej....
Hehe zdaje się że problem rozwiązany ;) dopisałem: $hwstack = 128 $swstack = 128 $framesize = 128 Dzięki Fredy za pomoc, leci "pomógł" Temat do zamknięcia
Dla pełności tematu. Jak skorzystać z PCINT? Szukałem w manualu i jakieś przykłady w sieci ale nie znalazłem nic czytelnego. Oto przykład dla Attiny13 (jest on w manualu): [code][syntax=basic4gl] $regfile = "attiny13.dat" $crystal = 9600000 $hwstack = 32 $swstack = 24 $framesize = 8 'config pinb.0 = input Config Portb.2 = Output Pcmsk = &B00000001...
Sprawdziłem to dla sportu bo taki prosty kodzik od czasu do czasu to jak zjedzenie cukierka :D i to nawet działa. Oświetlone słońcem czy tam nawet żarówką LED`ową się nie wzbudza a przy zbliżeniu i owszem. Tiny85 ma juz wbudowany wzmacniacz dla ADC i tam mozna więcej nawet zadzaiałać, ale Tiny13 nie ma więc dla czułości użyłem wewnętrznego napięcia...
Jakie masz ustawienia stosu w kompilatorze? Najlepiej wklej do programu dyrektywy: $hwstack = 256 $swstack = 128 $framesize = 512 (wartości są przypadkowe, należy dopasować do programu lub dobrać "eksperymentalnie")
Witam ! Dodaj te trzy linie (jako 3, 4 i 5 ) a będzie się dobrze kompilował: $hwstack = 8 $swstack = 8 $framesize = 8 Pozdrawiam. Stefan
no i ten działa. A w bascom'ie nawet jak dodam $hwstack = 40 $swstack = 16 $framesize = 32 to i tak nic z tego fusebity są ustawione na wewnetrzny oscylator 8Mhz, jak wgrałem hex z paczki to działa a jak z bascom'a to nie.
Różne rzeczy już czytałem więc upewnij się czy programator kasuje flash przed zapisem nowego programu. Masz w swoim programie te Hwstack Swstack i Framesize? Mam nadzieje, że w kodzie nie masz nigdzie napisane $sim :D Zerknij też jak według kodu powinny wyglądać podłączenia. http://obrazki.elektroda.pl/5818703700_1...
Tu masz przykład który możesz odpalić w symulatorze Bascom z innymi liczbami. Kod dwukrotnie wywołuje funkcję Podziel_liczbe() tyle że raz liczba ma 321 a za drugim razem tylko 1. Kod ma włączone wygaszanie zer wiodących więc przy jeden napisze tylko 1 z prawej strony a nie 001. https://obrazki.elektroda.pl/6479764500_...
Simple how it`s look but should work ;) Set Freq manually but 1,2MHz is a oryginal value [syntax=basic4gl]$regfile = "attiny13.dat" $hwstack = 24 $swstack = 8 $framesize = 24 $crystal = 1200000 '$lib "mcsbyteint.lbx" ' <-option Config Portb = &B00100011 : Portb = &B11000000 Config Adc = Single , Prescaler = 8 , Reference = Avcc Start Adc...
Szybko zajrzałem do noty PCF8583 i tam jest napisane, ze kiedy nie używasz funkcji alarmu to stan na pinie INT zmienia się na przeciwny co 500ms. Tak wiec impuls jest na tyle długi ze spokojnie można go traktować jak zwykły przycisk naciskany co sekundę. [syntax=vbnet]$regfile = "m32def.dat" $Crystal=8000000 $hwstack = 64 $swstack=32 $framesize = 128...
Muszę odebrać 9 zmiennych bitowych . Transmisja działa ale jest problem, co jakiś czas zdarzają się przypadki gubienia danych lub fałszywych danych.Zmiana szybkości transmisji nie pomaga.czy ktoś pomoże rozwiązać problem? fragmenty kodów [syntax=basic4gl] 'nadajnik $regfile = "m128def.dat" $crystal = 7372800 $hwstack = 32 $swstack = 10 $framesize =...
Kombinuje tak: bajt = 10000000 zmienna = bajt.1 zmienna = 1 ... i tak osiem razy rozkładając bajt na bity i później tylko je poskładać w odwrotnej kolejności. Oczywiście prosto nie jest. O tablicach myślałem ale musiałbym je ręcznie rozpisać na kartce 256 i zrobić obok lustrzane odbicie i przeliczać :D Można tak: [syntax=basic4gl]$regfile = "m8adef.dat"...
Zamień swoje ustawienia na podane niżej. W razie konieczności wpisz większe aż do uzyskania prawidłowego działania. $hwstack = 64 $swstack = 64 $framesize = 64
Uściślijmy jeszcze czy w kodzie który działa też nie masz wartości $framesize, $swstack i $hwstack? Rzeczy należy eliminować sukcesywnie. Dopisałbym te brakujące rzeczy od razu zamiast je podejrzewać... !EDIT! Zapomniałem o tym a już się w tej sprawie kontaktowałem kiedyś z Supportem :D Słowo Hbyte jest słowem używanym przez wewnętrzne procedury Bascom....
Musisz w kodzie dodać takie zaklęcie :D $hwstack = 8 $swstack = 8 $framesize = 8 PS Ten uC ma, 64 bajty SRAM.
Pewnie, jak to w życiu, coś trzeba będzie poprawić, ale możesz spróbować tak. Niektóre zmienne tam nie zostały użyte bo koncepcja się zmieniła podczas pisania ;) Przesunąłem przycisk i dodałem tez pin obsługujący wymuszenie trybu AT [syntax=vbnet]$regfile = "attiny45.dat" $crystal = 8000000 $hwstack = 32 $swstack = 32 $framesize = 64 Config Portb.2...
dodałem cos nieznacznie 'settings from KS 108.BAS sample program $hwstack = 32 $swstack = 10 $framesize = 40 w załączeniu wynik kompilacji i zwracane u mnie błędy /jarek
A zmien deklaracją zmiennej na Dim Ss As String * 7 lub 8. i dodaj za crystal [syntax=basic4gl] $crystal = 2000000 'internal RC $hwstack = 96 $swstack = 96 $framesize = 96 [/syntax] Jaki masz numer wersji Bascoma?
... No właśnie... Jak go skompilować. nie chce przejść przez linie: $hwstack = 80 $swstack = 128 $framesize = 80 $lib "ds1307clock.lib" ' modified lib Nie znam tych komend. Czy tą bibliotekę do obsługi Dallasa trzeba skądś ściągnąć ?. Jeżeli tak to gdzie ją wstawić i co znaczy komentarz "modified lib" ?. Dodam, że po wywaleniu tych linii reszta przechodzi...
Wielkość stosów możesz ustawić w menu Options -> Compiler -> Chip HW Stack, Soft Stack i Framesize (ustawienia domyślne to 32,24,24). Można też dopisać na początku programu: $HWSTACK = wartość $SWSTACK = wartość $FRAMESIZE = wartość gdzie wartość to ilość bajtów przeznaczona na stos. [url=http://basavrhelp.mcselec.com/index...
Są oczywiście takie moduły zespolone z pamięcią. Mozna tam zapisywać i czytac po bajcie, ale można też sekwencyjnie całe łańcuchy i tablice nawet serializatorem. Dwie pierwsze funkcje podpowiem. Wygląda na to ze działaja ;) Możnaby dodać jakieś zabezpieczenia na wypadek braku komunikacji. https://obrazki.elektroda.pl/8549538400_...
I to wszystko ? raczej to nic nie daje ... dodałem jak napisałeś [syntax=vbnet] $regfile = "m644pdef.dat" $crystal = 16000000 $hwstack = 32 $swstack = 32 $framesize = 64 $baud = 19200 Config Serialin = Buffered , Size = 32 Enable Interrupts [/syntax] i nadal nie dostaje sms-a zwrotnego z modułu
Jeśli zdecydujesz się na Basic, co zapewne dużo ułatwi pisanie aplikacji, prosze przykład komunikacji MODBUS RTU dla Zamel EXTA FREE, do sterowania ROP. [syntax=vbnet]$regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 $hwstack = 32 $swstack = 10 $framesize = 40 Config Com1 = Dummy , Synchrone = 0 , Parity = Even , Stopbits = 1 , Databits = 8 , Clockpol...
$regfile = "m644def.Dat" $crystal = 16000000 $baud = 19200 '$baud #1 = 19200 $hwstack = 128 $swstack = 100 $framesize = 100 Config Serialin = Buffered , Size = 200 Config Serialin1 = Buffered , Size = 200 Przy dodaniu ostatniej linijki wyrzuca błąd 117
A potrafi ktoś obsługiwać ten timer2? Kolega wyżej objaśnił ci to dostatecznie w twoim ojczystym języku. Jeżeli masz z tym trudności to może to będzie pomocne: [code][syntax=basic4gl] ' Must use the internal RC oscillator at 8MHz or at 1MHz because ' a 32.768 kHz watch crystal must be connected between the TOSC1 and TOSC2 pins. ' $regfile = "m8def.dat"...
Dodałem parametry związane z pamięcią SRAM, tj - $hwstack = 128 $swstack = 64 $framesize = 64 Program ruszył. Odtwarza już nawet długie utwory bez zawieszania się, działa z funkcją EOF i prawidłowo rozpoznaje koniec pliku. Zobaczymy jak to będzie dalej działało...
To ci się trafiła pewnie taka płytka jak i mi. Też mam taki rozkład pinów. Wyjście 3 jest pod E2 i to jest programowo sterowanie podświetleniem. Dlatego ci miga. Mi też migało. Ja dwa dni szukałem biblioteki żeby działała z tą płytką, bo przerobić nie umiałem. Zobacz ten kod: T i tam, jeżeli żadna z trzech nóżek odpowiadających za ustalenie adresu nie...
Problem rozwiązany dzięki pomocy Mundi1970 . Jak się okazało program miał większe zapotrzebowanie na stos programowy niż ustawione domyślnie jego wartości. Wprowadzenie 3 dyrektyw rozwiązało wszystkie problemy. [syntax=basic4gl] $hwstack = 56 $swstack = 48 $framesize = 64 [/syntax] Dzięki wielkie, pozdrawiam !
Czy deklarując w bascomie globalna zmienna tablicowa byte o wielkośći 224 Dim Tablica(224) as byte Muszę jakość ją uwzględnić przy parametrach $hwstack = 250 $swstack = 250 $framesize = 25 Procesor to atmega64
Witam Kolega dondu ma racje dioda i tranzystor jest potrzebny ale jeśli chcesz na szybko sprawdzić kod czy działa zamiast wentylatora podłącz LED i w ten sposób sprawdzisz czy kod jest poprawnie napisany bo jak dla mnie raczej nie Sprawdź ten kod zmień sobie Porty w LCD i 1Wire oraz Wentylator czyli LED w programie. $regfile = "m8def.dat"...
hwstack swstack framesize attiny13 hwstack bascom bascom swstack
xantia regulator schemat hondy accord serwer minecraft
zelmer aquawelt zelmer aquawelt
Ford Mondeo MK3 TDCi – przerywanie silnika 2500-3500 rpm, biało-szary dym, wtryski Delphi Samsung Galaxy z lombardu – komunikat o haśle po resecie sieci, blokada ekranu, FRP