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ę.
Ile zadeklarowałeś HWstack SWstack i Framesize?
Zapoznaj się z $hwstack, $swstack i $framesize.
Tutaj masz wszystko opisane: http://www.elektroda.pl/rtvforum/topic32...
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ę.
W symulacji pomogło to: $hwstack = 64 $swstack = 64 $framesize = 64
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...
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]
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
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...
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
Pootwieraj wszystkie i szukaj jednego z deklaracją mikrokontrolera. Tylko jeden będzie miał wpis i tylko ten się kompiluje. $nocompile
Troszkę dziwnie wygląda ta pętla główna, ze zmienną "corobic" :) Mogłeś dać po prostu w do-loop wywołania kolejnych procedur i jedną pauzę np. 1 sek. Do tego w procedurze wyświetlania dajesz CLS - nie przeszkadza Ci miganie ? Spróbuj dodać na początku dyrektywy ustalające stos : $hwstack = 32 $swstack = 32 gdyż używasz GOSUB. Może pomyśl o procedurach...
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
masz rację - problemy ze stosem bywają bardzo wredne jeśli się nad nim świadomie nie panuje tak więc na przyszłość pisząc programy w bascomie radzę ci jednak używać tych dyrektyw i to jeszcze poczytać od czego zależą wartości jakie się podaje dla hwstack i swstack bo tak - to na razie może działać ci dobrze a pojutrze zdziwisz się, że znowu szwankuje...
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...
[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ć...
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]
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:...
Proponuję na początku programu (np. po deklaracji częstotliwości) dodać: $swstack = 64 $hwstack = 64 $framesize = 32 i przetestować jeszcze raz. Pozdrawiam Andy
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...
RTFM:) Jak zawsze, $hwstack $swstack...
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 :...
...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...
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"...
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.
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...
Nie, Tiny13 ma tylko 64 komórki RAM, działanie zmiennych zależy od ustawień $hwstack - stos sprzętowy i $swstack - stos programowy. Ogranicz oba parametry do 8 lub 4, ale trzeba uważać z wywoływaniem podprogramów, aby nie przepełnić stosów. Także dyrektywa $TINY ustawia parametry środowiskowe, ale uniemożliwia wywołanie podprogramów.
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...
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...
Może masz inne delkaracje HWStack, SWStack i Framezise w tych dwóch kompilatorach. Dodaj je do programu głównego najlepiej, wtedy zmiana kompilatora nie wpłynie na te parametry.
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...
[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...
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ć ?
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 =...
Hej, zumek : czy dla $regfile = "m128def.dat" $crystal = 11059200 wartości: $hwstack = .. $swstack =.. $framesize = .. ...będą takie jak wcześniej podałeś??? Dzięki!!
$HWstack = 64 $SWstack = 64 $Framesize = 64
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"...
Kurde, masz zle skonfigurowany wyświetlacz !!! To samo co w poprzednim moim poście zrób z tym przykładem, następnie zdjęcie i wiadomo co dalej. [syntax=vbnet]$regfile = "m644pdef.dat" $crystal = 16000000 $framesize = 80 $hwstack = 50 $swstack = 50 Config Graphlcd = 128 * 64 , Dataport = Porta , Controlport = Portb , Ce = 2 , Cd = 5 , Wr = 3 , Rd = 4...
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...
A coś takiego trzeba dodać.... [syntax=basic4gl] $hwstack = 8 $swstack = 8 $framesize = 8[/syntax]
[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...
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)...
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 :...
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...
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...
$hwstack = 256 $swstack = 256 $framesize = 500 Nie za rozrzutnie to trochę ustawione?
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...
...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,...
A może: $HWStack = 32 $SWStack = 32 $FRAMESIZE = 32 ?
(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...
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...
Brakuje pamięci. Na początku kodu dodaj $HWSTACK = 32 $SWSTACK = 16 $FRAMEZISE = 24 A jak to nie pomoże to trzeba będzie zmniejszać te liczby, ale bez przeady.
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]
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
(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...
$regfile = "m8def.dat" $crystal = 4000000 $hwstack = 40 $swstack = 16 $framesize = 32 Taką konfigurację generuje BASCOM dla Atmegi8, gdzieś indziej widziałem: $crystal = 16000000
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...
Spróbuj jeszcze dać: $hwstack = 32 $swstack = 8 $framesize = 24 Bo ty masz coś małe te wartości.
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...
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
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ś...
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...
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
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...
Nie wiem jak to powinno być ustawione, ale te wartości jak dobrze pamiętam mi pomogły, gdyż też taki sam problem miałem: $hwstack = 128 $swstack = 128 wystarczy je dopisać na samym początku programu. Daj znać czy Ci to pomogło
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"...
Problem na pewno jest tu :): Nosave , to musisz wiedzieć jakie rejestry (R0-R31) wykorzystuje twoja procedura przerwanie. Przed wykonaniem przerwania musisz je sam wysłać na stos, a po zakończeniu przerwania z powrotem ściągnąć ze stosu. Skonfiguruj przerwanie bez opcji Nosave , a kompilator sam zadba o wszystko :). Druga sprawa brak definicji wielkości...
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
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...
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.
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....
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...
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
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_...
Musisz w kodzie dodać takie zaklęcie :D $hwstack = 8 $swstack = 8 $framesize = 8 PS Ten uC ma, 64 bajty SRAM.
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...
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...
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 =...
Procesor uPC Mega16 z zegarem ustawionym na 8MHz timer: 125ns*1024*200= ok 26ms Trochę dziwnie to liczysz: 1024/8000000=0,000128us 200*0,000128=0,0256s=~25,6ms Mniejsza z tym, mniej więcej się zgadza. Co ze stosem? Masz to gdzieś na początku programu? [syntax=basic4gl]$hwstack = 40 $swstack = 40 $framesize = 24[/syntax] Jeżeli nie masz to dopisz. Możesz...
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"...
$regfile = "m32def.dat" $crystal = 16000000 $framesize = 16 $hwstack = 24 $swstack = 16 'Konfiguracja SPI Config Spi = Soft , Din = Pina.0 , Dout = Porta.3 , Ss = None , Clock = Porta.1
hwstack swstack framesize hwstack swstack framesize attiny13 hwstack bascom
smart sterownik czarny ekran internet telewizorze skuter bassa
Jak wyjąć głośnik z kolumny Grundig Box 650? Silnik okrętowy MAN - brak odczytu obrotów