Jaki będziesz miał wyświetlacz? Alfanumeryczny że string będzie ok? Czy może LED lub LCD segmentowy? Żeby zmieniać wartość enkoderem trzeba go obsłużyć... Enkoder ma przycisk? Zatem weź zmienną Word w której będziesz zmieniał nastawy np. [syntax=vbnet]dim wartosc as word dim index_wartosc as byte if index_wartosc =1 then wartosc=wartosc + 1 end if if...
Wszstko dlatego, iż zmienne typu Single są nieco odmiennie zapamiętywane w pamięci i mają wyjątki (np. NaN, QNaN, SNaN) które nie są liczbami, i każda operacja arytmetyczna z nimi powinna wywołać błąd operacji i jego zgłoszenie - a tego Bascom niestety nie obsługuje (jak i spora ilość innych kompilatorów). Operacja z jawną zamianą znaku jest bezpieczniejsza...
Z tą dowlnością w używaniu rejestrów byłbym bardzo ostrożny. Nieodpowiednia zmiana - program się wysypie. Nie wolno używać w trybie zapisu bez wcześniejszego zapamiętania: Y ( soft stack pointer ), R4:R5 ( frame stack pointer ), R6 ( status register ), R8:R9 ( data pointer ), R23 ( translate register ), R12:R13:R14:R15 ( fp calculator ). W sumie można...
Hehe, przeanalizuj dokładnie Twój ostatni programik i odpowiedz sobie jeszcze raz na pytanie jak on właściwie działa :) ...jak ograniczyć ruch diody dosłownie na 4 pinach. Tu mamy przesuwanie 2 diodek - "00010001"... Wkradł mi się mały błędzik :) W swoim programie pobierałem dane z linii Data i były to tylko bity 0...3 dla silnika bipolarnego natomiast...
Daj kod, bo my nie wróżki...
Chciałbym dzisiaj przybliżyć Wam trochę tensometr, który czasem jest również nazywamy: czujnikiem tensometrycznym, belką tensometryczną czy też czujnikiem naprężeń. Będzie tutaj trochę teorii i praktyki. Zostanie tutaj opisany chyba najbardziej popularny tensometr czyli tensometr oporowy. https://obrazki.elektroda.pl/8825635100_...
W Bascomie którego uzywam czyli Bascom AVR IDE, edytor sam zmienia nazwy zmiennych na wielkie litery, np z->Z. W przypadku wołania funkcji (w moim przykładzie T=x,y) z niezrozumiałych przeze mnie względów zmienia pierwszy argument na małą literę a drugi na wielką, niezależnie jak je użytkownik wpisze. Nie wiem czy to ma jakieś znaczenie, ale może właśnie...
Dzisiaj postaram się przybliżyć Wam mostki H. Mostek H jest układem elektrycznym umożliwiającym zmianę kierunku silnika prądu stałego poprzez odwracanie polaryzacji napięcia na jego wyjściu. Mostek taki można wykonać np. z przekaźników, tranzystorów lub można zastosować gotowy układ scalony. Nazwa pochodzi od graficznego odwzorowania układu. Mostek...
Witam Państwa Czy ktoś z Państawa może mi wyjaśnić dlaczego kompilator BASCOM 51 wersja demo (ograniczenia do 2kB) działa źle? Programuję nim AT89S8252 Walczę z tematem już troche czasu i zauważyłem że kod który piszę na ekranie jest błędnie kompilowany. Dopisanie jednej lini programu powoduje zmianę wartości zmiennej mimo że ta linia jej nie dotyczyła...
Witam. Napotkałem drobny problemik. Po wpisaniu id czujnika: Sid = &H28C2F8A602000098 BASCOM wywala błąd 49. zmiana deklaracji zmiennej Sid nic nie daje. Cały czas pisze że nie mieści się w zmiennej, BYTE, WORD, LONG... Co z tym zrobić?
Wielkie dzięki Panowie za odpowiedź. Mam programator USBASP. Już wczoraj doszedłem że to jest fusebit P Trzeba ustawić (0: osc.options proggrammed) Ale co ciekawe procesor chodził już bez przestawienia tej opcji. A Bascom wybrałem gdyż jest dla mnie najbardziej zrozumiały. Programuje sterowniki PLC a tam to wszystko w drabince jest proste jak drut.;)...
Witaj, Masz 2 opcje ;) np. masz cos takiego: dim a as byte a.0 = 1 a.1 = 1 a.2 = 1 set a.0 set a.1 set a.2 a.3=0 a.4=0 a.5=0 reset a.3 reset a.4 reset a.5 Instrukcja: a.[numer bitu] = [0 lub 1] set/reset a.[numer bitu] gdzie set ustawia 1 reset ustawia 0 analogicznie dla zmiennych typu word integer - tylko że tam możesz zmieniać więcej bitów;) Pozdrawiam
Tego się tak nie robi. Bascom ma wbudowane funkcje do obliczania różnych wartości z dat i w drugą stronę. Całkowity czas z datą można zapisać w zmiennej typu Long. Tak samo deklarując po kolei Sec, Min, Hour, Day, Month i Year jako Byte można potem uzyskiwać różne potrzebne dane tam i z powrotem. W swoich programach wstawiam funkcję bo czas Lato/Zima...
Powtarzam ! konfiguracja przerwań jest ok. Jeśli wstawię w przerwanie cokolwiek innego to wszystko jest ok. Pozatym przerwanie działa prawidłowo i nie w nim problem a problem jest z kodem który podałem wcześniej i powtarzam któryś raz odznaczenie linijki timer1=0 załatwia sprawę i do zmiennej x wpisywana jest prawidłowa wartość wynikająca z pracy timera1...
http://obrazki.elektroda.net/7_123635472... Prawie rok temu, zainspirowany konstrukcją pana Kamila Przychodzenia http://obrazki.elektroda.net/18_12363549... http://obrazki.elektroda.net/82_12363551... Płytka sterownika oraz płytka organizacji połączeń http://obrazki.elektroda.net/62_12363543... http://obrazki.elektroda.net/80_12363591...
Witam Mam pytanie dotyczące obsługi encodera... ................. Przy zmianie kierunku pierwsza cyfra na wyświetlaczu zostaje "zamrożona" a zmianie podlega druga cyfra, znów w pętli. i tak dalej. Każda zmiana kierunku powoduje przeskok na kolejną pozycje wyświetlacza Jest to w zasadzie prosta operacja, lecz brakuje tu zasadniczego warunku –...
Witam, Mam problem i nie wiem jak go rozwiązać. Chcę konfigurować moduł Wiznetu (chodzi tu głównie o zmianę adresu IP) aby mógł pracować z różnymi adresami. Używam instrukcji Settcp 00.08.220.03.07.24 , 10.0.0.19 , 255.0.0.0 , 10.0.0.0 i chce w miejsce numeru IP podstawić jakąś zmienną (Settcp 00.08.220.03.07.24 , IP_STAT , 255.0.0.0 , 10.0.0.0). Chce...
Właśnie i tego się bałem ze jak wcisnę przycisk i go trzymam to przełanczaja sie kolejne programy Tak to wlasnie jest gdy increamentacja lub decr. zmiennej jest umieszczona w petli 'do...loop' i jest warunkowana poziomem na okreslonym wejsciu. Za kazdym "obrotem' petli zawarte w niej polecenia sa bezblednie wykonywane, przedzielone ustawionymi czasemi...
Obejdzie się bez przesuwania i masek. Jeżeli mamy zmienną Z to wartość bitu b tej zmiennej można zmieniać odczytywać, zapisywać wysyłać do portu lub co komu się podoba poprzez Z.b . To tak jak Portb.1 itp. Odczyt bitu pierwszego to np. Wynik = Z.1 (bit zerowy to Z.0) Zapis to Z.1=1 Warunek If Z.1 = 1 Then ... i tak dalej.... Jeśli dotyczy to zmiennej...
A tak może być ? http://obrazki.elektroda.pl/9165536300_1... Kliki realizowane są przez krótkie naciśniecie wyłącznika i zliczane. 2 razy klik powoduje zwiększenie zmiennej B o 1. Jeśli B=2 czyli 2-i klik następuje zmiana wartości zmiennej L czyli zmiana trybu ( wartości PWM). Kliki badane są na wejściu PB3. Na wejściu PB2 mierzona jest...
Przeczytaj: http://avrhelp.mcselec.com/index.html Wykorzystaj opisaną tam zmienną (modyfikacja jej zawartości w przerwaniu) lub ustaw niski czas na starcie, a potem kontroluj czy Input zostało przerwane. Prawdopodobnie przy przerwaniu INPUT ustawiana jest dodatkowo zmienna ERR. Trzeba by zajrzeć w kod "tylnymi drzwiami". Dodano po 27 EDIT: Nie ma tak...
Witam serdecznie. Próbuje stworzyć generator PWM o zmiennym wypełnieniu i zmiennej częstotliwości. Generator ten chce stworzyć na ATmega32 12MHz w języku BASCOM. Zmian dokonywać będzie można przez dwa potencjometry. Mam już napisany program ale niestety sygnał na oscyloskopie wariuje. Co jakiś czas jest przebicie innych wartości. Walczyłem z tym dość...
Witam Mam płytkę Loggera GPS + SD + PCF8563. Jeśli chodzi o GPS i zapis na SD wszytko jest OK. Problemem jest ( i to pierwszy raz się z czymś takim stykam ) odczyt danych z z układu PCF8563. Otóż dla pewnych wartości sekund, odczytana wartość czasu - godziny jest większa o 40 ( czterdzieści ). Czyli jeśli czas jest 22:40:02 to jest wyświetlany poprawnie,...
... A więc, wynikało by z tego, że jeśli w pętli przemiatamy po kolei kanały ADC 0...7 to każdy pomiar zabierze minimum 25 cykli dla każdego kanału. Nie wspominając o tym, że w rzeczywistości bascomowa instrukcja GETADC() (pomiar i przypisanie wartości do zmiennej) może zabrać więcej niż 25 cykli. Nie do końca, mylisz illość taktów przetwornika ADC...
Aa no tak, muszę dopisać aby po bicie 65 nie resetowal tej zmiennej jeśli jest logiczna 1. Tak to zrobiłem...działa wykrywanie Repeat i VLow. "Zamknięcie transmisji" po ostatnim opadającym zboczu. [syntax=vbnet]Capture1_int: 'przerwanie przy każdym zboczu ICP, odczyt czasu trwania impulsu Timer1 = 0 Period = Capture1 If Tccr1b.ices1 = 1 Then 'jesli...
Timer1 = 48256 'przerwanie wywolywane co 100 ms 10razy na sekunde Skąd można wywnioskować , że przerwanie wywoływane jest 10x/sek skoro nie widać jak Timer1 został skonfigurowany. Zauważyłem też ze zmiana długości wysyłanego ciągu przez nadajnik z 8 na 25 bajtów nie spowalnia jak by się wydawało transmisji. Pewnie że nie spowalnia bo układ ziewa z...
Mam sprawdzać stan bieżący czy ilość przepełnień? To już zależy od Ciebie i od tego jak szybko chcesz puścić timer (z jakim preskalerem). Ale przy takiej precyzji wystarczy liczyć przepełnienia w procedurze obsługi przerwania. Jak wskazano wcześniej najrozsądniej jest użyć 3 zmiennych inkrementując wartość każdej z nich po przepełnieniu. Wciśnięcie...
Dzielnik przez 8 i 9 możesz zrobić na którymś timerze sprzętowym wbudowanym w procesor. A realizacja dzielnika przez 8,5 musi być programowa: Próbkujesz sygnał wejściowy i każda zmiana stanu sygnału wejściowego powoduje inkrementacje zmiennej co daję dwie inkrementacje na okres sygnału (stan wysoki i stan niski liczone osobno). A dalej pozostaje wykrycie...
instrukcja "if port.6" sprawdza stan portu w tej chwili i nie wie co było wcześniej :)) powinneś zapamiętać stan portu np. w zmiennej Bylo=Port.6 w miejscach gdzie robisz Wait 5 a warunki powinny wyglądać : if (port.6 =1) and (Bylo =0) then.. elseif (port.6 =0) and (Bylo =1)... Oczywiście to jest zasada, składnie języka pewnie do poprawy Dodano po 1...
OK to jeszcze dopytam tak, rozumiem że na początku przerwania zmieniam stan Edge_ na 0, liczy timer i config int0=rising ale co dalej załóżmy że nadejdzie zbocze narastające i co wtedy się dzieje? No tak, zabrakło jeszcze jednej linijki... sory... Powinno być: If Edge_ =0 Then Start Timer1 Config INT0=Rising Else Stop Timer1 Config INT0=Falling End...
A co jest w tym poprawnego? Dodano po 3 Może to że warunek nie będzie wykonywany przy każdym naciśnięciu przycisku? Wersja z Inc I If I > 4 Then I = 4 End If Faktycznie będzie robiła bezsensowne obliczenia, ale zauważ że każda przypadkowa zmiana zmiennej I (na przykład pod wpływem silnego impulsu elektromagnetycznego) zostanie od razu zauważona i...
Tak, chciałem policzyć czas grupy impulsów i z tego częstotliwość. Dla przykładu: Timer0 liczy impulsy sygnału o częst. około 500 Hz, wiec 50 impulsów to około 0,1 sek, 450 impulsów to około 0,9 sek. Dlatego Timer1 miał się przeładowywać co 50 i stąd moje nieudolne próby wpisania w niego 206 :cry: Jestem świadomy, że znaczna zmiana mierzonej częstotliwości...
Na wstępie chciałbym powiedzieć że piszę w BASCOM-ie AVR. Buduję urządzenie które ma wyświetlać wynik na wyświetlaczu 7-mio segmentowym (podyktowane warunkami środowiskowymi i widocznością). Napisałem program który działa (listing poniżej) ale dręczy mnie pytanie czy nie da się tego zrobić prościej tzn pobierać poszczególne cyfry bezpośrednio ze zmiennej...
Witam . Chciałem zrobic tester pomp opryskiwaczy . Chodzi o mierzenie wydajności pompy w litrach na minute a moje pytanie czy nie bedzie gubił impulsów podczas wykonywania przerwania . Pomiar co 1 sekundę a wydajność pomp od 40l do 260l / min Nie musisz obawiac się o gubienie impulsów z powodu wykonywania przerwań. Impulsy są zliczane przez Counter1,...
Witam Mam tak, jak w kodzie poniżej obsługiwane przyciski i pilot NEC. [syntax=vbnet] '********************* obsługa pilota '******** ustawianie stanu bitu If Command = 104 And Blokuj_pilot = 1 Then ' klawisz 1 Blokuj_pilot = 0 Licznik_blokuj_pilot = 0 Klawisz_1 = 1 Command = 0 Licznik_zeruj_led = 0 ' zerowanie licznika powrotu do wyswietlania godzin...
Witam Mam program budzika, który jako dodatkową atrakcję miał mieć możliwość mówienie czasu na żądanie i odtwarzanie oprócz buzzera utworu jako alarmu. Atmega steruje przez jedno SPI programowe układem MAX7219, a przez konwerter poziomów i drugie SPI programowe odtwarzaczem WTV020SD. O ile sam WVT020SD + PCF8563 ( wyjście CLK do INT1 ) działają dobrze,...
Witam. Napisałem taki program .............. W moim programie po kolei załączają się rożne tryby migania diody a ja chciałbym żeby wciskając raz switcha załączał się pierwszy tryb później po wciśnięciu załączał się drugi tryb i aż tak do czwartego trybu. Pozdrawiam, Masz prawdopdobnie zadanie zmieniać tryby migania (4 tryby) jednej diody z użyciem...
Witam Mam Atmega32A + PCF8563 + PCF8574 + RFM12 + DS18B20 +DHT11. Port danych LCD to Port.A, ControlPort to Port.C. I2C standardowo na Portc.0 Portc.1. Niestety jest problem z obsługą I2C, tzn. zegar PCF8563 nie działa w ogóle ( na LCD puste pole ) , a klawiatura na PCF8574 - tylko jeden klawisz i to nie ten, który jest przypisany w kodzie ( działa...
bascom charakteryzuje sie latwoscia programowania o ile w asemblerze musisz dobrze znac budowe procka to w bascomie az taka duza wiedza nie jest potrzebna <co moze jednak nie jest az takim duzym plusem :roll: >chac np uruchomic licznik w asemblerze trzeba wpisac odpowiednie stany w odpowiednie rejestry natomiast w bascomie zalatwiaja to wpisane...
co napisaliscie jako swoj pierwszy program na dany uC w danym jezyku (rozbudowy sie licza, byle by wciaz byla to ta sama baza) n. n. - literka, cyferke z przodu dodam sam. zachowujcie chronologie w swoich dokonaniach na roznych platformach jezykowych i sprzetowych, tak aby to mialo sens! ____________________ 0x1-a. Freddie Chopin - migacz diodkami o...
Cześć. Prosze o pomoc w rozwiązaniu problemu, a mianowicie mam problem przy konfiguracji klawiatury. Nie moge ręcznie wpisać kodu np. 1234, tylko program sam dobiera mi kod ( caly czas podaje jedna liczbe"1", tak jak bym ja cały czas wpisywał) kod wtedy jest ustawiany na 1111, ale jeżeli zmienie wartość na "k=2" w miejscu zaznaczonym w kodzie to program...
Witam Poniżej wstawiłem kawałek "kodu", który ma służyć ustawieniu parametrów alarmów, oczywiście nie jest skończony ( brakuje obsługi przycisków zmieniających wartości). Chodzi mi raczej o obsługę wyświetlania na MAX7219 - jako, że część się powtarza szukam sposobu, jak zrobić, żeby powtarzająca się cześć była wspólna. [syntax=vbnet] If Ustaw_alarm...
Witam panowie od razu podkreślę że jeszcze uczę się bascoma więc proszę nie krzyczeć i nie usuwać tego postu do kosza Siedzę już nad tym 3 dzień i efekt mojej pracy nie najgorszy ale mam parę pytań po pewnych rzeczy nie rozumiem i nie mogę rozwiązać. Więc tak założeniem był pomiar temperatury przez ds18b20 wyświetlenie je na LCD i 4 wyświetlaczach 7...
Bascom - wersja 1.11.95 Kod, no jest tego sporo: - zegar PCF8563 - Zapis na SD - dwa czujniki DHT11 - odczyt z PCF8574AP ( klawiatura ) - RC5 - ma być DS18B20 - ma być DCF77, ale nie doszedłem do tego momentu ( tzn testowałem na innym procesorze i działało ) Działa - zegar PCF8563 - dwa czujniki DHT11 - odczyt z PCF8574AP w przerwaniu ( klawiatura )...
Poniżej zamieszam kod w Bascom pisany dla zestawu uruchomieniowego ZL11AVR. Dioda podczerwieni dołączona do Pinb.3. Chyba najważniejsze z tego, to komenda wyzwalająca migawkę: Sonysend &HB4B8F , 20 (Sony alpha korzystają z 20 bitowego protokołu SIRC) W razie pytań postaram się pomóc. [syntax=basic4gl] 'Program zegara wykorzystującego przerwania...
Tak, rozwiązałem problem za pomocą tablicy.
Taka niestety jest konstrukcja Bascom'a. Jeśli nie chcesz robić tego krok po kroku to możesz sobie stworzyć funkcję, która to będzie robić. Innej alternatywy nie ma... no chyba że zmiana języka na C.
Co zrealizować? Programowe zliczanie impulsów? Ustawiasz timer tak, żeby generował przerwanie co 100 us, sprawdzasz stan portu, robisz xor z poprzednim stanem i testujesz, które bity są ustawione - ustawiony, znaczy zaszła zmiana stanu, czyli inkrementujesz odpowiednią zmienną.
Witam. Masz w złym miejscu Do i Loop oraz Lcd. Zobacz ze program powtórnie już nie wyświetla nic (zmiany liczb). No i skoro deklarujesz Sub`y to ich użyj czyli Sub Menu1 ........ End Sub, no i dawaj te deklaracje zawsze na początku programu, np. zaraz po zmiennych. Pozdrawiam
Uruchomiłeś Timer, zapisałeś do TCNT2 i OCR2 jakieś wartości i tyle. Timer i tak zmieni wartość TCNT2. A wartość OCR2 jest mu obojętna. Nic dziwnego że nie widać żadnych zmian po modyfikacji tych wartości. Zrób tak jak radzi kolega wyżej.
Tak co jeden cykl. Prescale jest 64 wiec nie tu chyba problem. Nic sie nie dzieje na wyswietlaczu a w symulatorze tez nie pokazuje zmian zmiennych.
Bez zmian.
Dziękuję za podpowiedź, ale niestety zmiana typu zmiennych nic nie dała. Dalej przebieg jest taki jak przed zmianą.
Witam. Problem z histerezą polega na tym że histerezę ustalasz w liniach wykonywanych tylko raz po starcie procka, dlatego ona zawsze będzie wynosić 0+5 (zmienna przechowująca temperaturę zmierzoną po starcie programu będzie 0). zmienną histerezy musisz umieścić w pętli aby byłą aktualizowana cały czas wraz ze zmianą temperatury. Pozdrawiam
Dluzej, czyli ile czasu? Czemu "tracisz czas" na przepisanie Pom3 do Prc ? Nie mozna do Prc od razu wpisac wyniku Pom1 \ Y ? Jakies ograniczenie Bascom'a? Z - szybciej sie policzy jak bedzie: Pom2 = Cykl * X Z = Pom2 \ Y Ciekaw jestem ile to zajmuje czasu po zmianach.
Pomysłu na teraz nie mam jak to rozwiązać, ale problem zapewne leży w tym, że kiedy przekaźnik = 1 to zmienna jest zwiększana z każdym przejściem pętli..stąd 2 potem 7 itp. Po prostu przez czas trwania stanu 1 na zmiennej przekaźnik, liczba się powiększa. Ciebie interesuje jednokrotne powiększenie. Czyli Przekaźnik = 1 i tylko raz incr zmienna. Trzeba...
Wydaje się ok. Celem programu jest sterowanie wyświetlaniem jednego (lub dwóch obok siebie) segmentów wyświetlacza BAR LED jako cyfrowej skali częstotliwości do tunera 88-108. Stąd, pozycja na "skali" zależy od zmiennej (powiązanej z odbieraną częstotliwością). Kierunek "przesuwania" jest jeden, bo i tak po zmianie częstotliwości przeładowane zostaną...
no najprosciej w glownej petli inkrementowac/dekrementowac w odpowiednim tempie jakies zmienne okreslajace wartosc wypelniania poszczegolnych 3 PWMow. Oczywiscie to dla trybu teczy. A co do zmiany trybow to w tej samej petli dodaj instrukcje sprawdzajaca stan ktoregos pinu (przycisku) i jezeli zostal nacisniety to inkrementujesz wartosc zmiennej okreslajacej...
aby wszystko było jasne , układ zasilasz napięciem stałym z pewnością na początek zastosujesz prostą sekwencję sterowania : 1000 0100 0010 0001 pomiędzy zmianą każdej sekwencją występuje przerwa czasowa tak wiec silnik zasilasz przebiegiem zmiennym w czasie dlatego była mowa o napięciu zmiennym w układzie i odpowiednich wzorach na obliczenie prądu
Po co jest "Readeeprom Nr_menu , 1" po "Debounce S1 , 0 , Zmiana , Sub"? To raczej nic nie wnosi do działania programu, ponieważ po "Debounce..." w zmiennej nr_menu już masz aktualny numer menu. "Readeeprom Nr_menu , 1" powinno być przed "Do". Wtedy aktualną pozycję menu odczytujesz tylko raz przy włączeniu zasilania i na ekranie wyświetlasz menu które...
Może sam spróbuj ;-) Tak w zarysie : w pętli głównej musisz dodać warunek: jeśli przycisk wciśnięty to zwiększ zmienną "czas" o 1 jeśli puszczony to zmienna "czas" =0 następnie: jeśli zmienna "czas" = 123 (dla przykładu, bo nie wiem jak szybko ta pętla przebiega) to : zmień tryb pracy (to masz strasznie napisane, więc trudno ogarnąć)...
BASCOM może mieć problemy z odjęciem od liczby 65536 zmiennej Word lub Integer. To po pierwsze. Więc zastosuj zmienne typu Long. W dodatku stosując offset (wartość odniesienia) nawet zoptymalizowanie programu nie pozwoli zastosować zmiennych dwubajtowych, bo niektóre wyniki będą miały wartości większe od 65535 (lub inaczej: dodatnie wartości mogą wyskoczyć...
Kolego ja te wartości dobierałem właśnie eksperymentalnie, kierując się wynikami pracy symulatora i działania zbduowanego układu i są one dobrane do mojego indywidualnego przypadku. Przepis przepisem, to dobre ustawienia na początek, ale działanie programu w praktyce może wymagać zmian :)
Chyba się źle zrozumieliśmy teraz mam tak, że nie mogę ustawić innej wartości jak 1 i 2 a powinno się zmieniać od 0 do 255 bo taki jest zakres zmiennej bitowej.
Co do samego stylu ja dodam od siebie. 1. Odświeżanie danych na LCD - nie rób ciągle Cls, Cursor Off Noblink. Ta druga instrukcja tylko na początku programu, a zamiast kasować danych i wyświetlać od nowa, zrób to za pomocą funkcji Locate i nadpisywania odpowiednich miejsc. 2. Konfiguracja pinu sterującego przekaźnikiem na początek programu. 3. Waitms...
Chcąc bezproblemowo zmieniać kanały powinieneś zostawić GETADC() i w konfiguracji zmienić na SINGLE . W trybie FREE przetwornik mierzy ciągle (ustawiając flagi przerwania ADI F po każdym pomiarze), a ostatni wynik będzie znajdował się w zmiennej specjalnej ADCD (typu Word ). Jednak zmiana kanału pomiaru jest nieco problematyczna, bo kanały musiałbyś...
Niestety bascom to czasem zgadywanka. On powinien operować na zmiennych a nie na rejestrach
[syntax=basic4gl]Config Timer0 = Timer , Prescale = 1024 Enable Timer0 : On Timer0 Przerwanie0 Dim Tmp As Word Tmp = 0 Dim Ptimer1 As Word Ptimer1 = 0 Do If Klawisz = 0 Then If Ptimer1 = 0 Then Ptimer1 = 100 End If If Ptimer1 < 95 And Klawisz = 0 Then Tmp = 1 End If End If If Tmp = 1 And Ptimer1 < 85 And Ptimer1 > 70 Then If Klawisz = 1 Then...
...Czy ja podaję prawidłowo wartość zmiennych. Audio jest zminną typu byte a co do wyjść potencjometru to ja podłączam omomierz i nie ma zmian wartości... Pomijam na razie kod , a przyczepie się do pomiaru :) Omomierzem , to sobie możesz ... ale tradycyjny potencjometr. Podaj na wej. H0 VCC , na L0 GND i mierz napięcie na W0. Piotrek
Trochę dziwnie te pętle zrobiłeś... a nie wystarczyło zrobić For...Next od 0 do 255 i odwrotnie po czym przypisywać wartość bezpośrednio zmiennej Pwm1a.
Ale po Co? W ten sposób i tak nie masz maksymalnej możliwej pewności wykrycia zmiany stanu, a w dodatku deklarujesz jedną zmienną nie wiadomo po co...
Ja na poważnie. Ale miałem na myśli coś innego. Nie kontrolę czasu ale stałość czasu. C nie gwarantuje wygenerowania konkretnego kodu a jedynie kodu o konkretnej funkcjonalności. Co z miejsca zaprzecza temu że czas wykonywania będzie stały. BASCOM gwarantuje wygenerowanie konkretnego kodu. Co oczywiście jest nieoptymalne, ale gwarantuje określony czas...
Czy liczba jest zawsze siedmiocyfrowa? Nie mówie że to jedyny sposób ale podam jeden z możliwych. Deklarujesz zmienną tekstową siedmioznakową. Taka zmienna ma w rzeczywistości osiem bajtów. Nie chcesz wysyłać ósmego NULL. No i OK :D Na te zmienną nakładasz bufor siedmiu bajtów. Kiedy zmienna Dword każesz zamienić Bascomowi na string to on zapisze komórki...
po usunięciu drugiej linijki, czyli $lib "mcsbyte.lbx" i zmianie pierwszej z $regfile = "m16adef.dat" na $regfile = "m16def.dat" błędu nie wywala. Z helpa wynika, że : Biblioteka MCSBYTE.LIB jest zoptymalizowaną wersją, która obsługuje tylko liczby typu Byte. i zmieniając wpis na Dim A As Byte A = 255 Lcd A wtedy błędu nie wywali, ale zmienna a musi...
piszesz tak zmienna_a=11010000 zmienna_b=00001010 zmienna_c=0 zmienna_c=zmienna_a and &b11110000 zmienna_b=zmienna_b and &b00001111 'odfiltrowanie niepotrzebnych bitow zmienna_d=zmienna_c + zmienna_b
temperatury zostaja zmienione na lcd ale tylko raz, znaczy się gdy temperatura zmieni się to nie ma zmian na wyświetlaczu. temperatura na lcd zmienia się "live" tylko wtedy gdy trzymam przycisk cały czas. Program działa dokładnie tak jak go napisałeś, w momencie kiedy naciskasz przycisk wartość odczytana jest przepisywana do zmiennej która jest wyświetlana...
W timerze (np. co 0.5 sek) gasisz albo zapalasz flagę (powiedzmy o nazwie fMiganie) Oczywiście po każdej zmianie flagi (fMiganie) następuje odrysowanie całości wyświetlanego zbioru elementów w najstępujący sposób: 1. Jeśli fPozycja jest poza zakresem zbioru wyświetlanych elementów (np. =0) - wtedy obraz wyświetlany jest bez migania. 2. Jeśli fPozycja...
' Funkcja musi być zadeklarowana przed jej pierwszym użyciem ' ponieważ kompilator musi wiedzieć jaki jest rozmiar danych ' przesyłanych do funkcji i jaki jest jej typ wyniku ' Funkcja musi mieć zdefiniowany typ wyniku, tu Integer Declare Function Test(byval Liczba As Integer , Tekst As String) As Integer ' określenie byval przed nazwą oznacza,...
A nie prościej wykorzystać tylko polecenie waitms lub waitus przypisując mu wartość przetwornika ewentualnie dodając mnożenie lub dzielenie aby otrzymać wymagany zakres zmian czasowych .
Nie wiem czy odbierasz tam jakieś komendy. Wywal te Wait`y. Tutaj po zmianie stanu do zmiennej Blokada zostanie wpisana wartość do odliczenia w dół. Jeśli nastąpi następne przerwanie to w zależności od tego czy minął już czas blokady, to albo zostanie przedłużony jej czas bo ktoś trzyma przycisk dłużej albo.. :D [syntax=basic4gl]Dim Blokada As Word...
Można to zrobić w bardzo prosty sposób: Komenda GETRC Przeznaczenie: Określa wartość zmiany rezystancji lub pojemności. Składnia: zmienna = GETRC( port , numer ) gdzie: zmiennazmienna typu Word w której znajdzie się wynik pomiaru, portnazwa portu procesora, np.: PIND, numernumer końcówki do której podpięty został obwód RC. Schemat: pinx ----[fotorezystor]------|...
Problem rozwiązałem dużo wcześniej ... a teraz znalazłem czas żeby wyjaśnić. Oczywiście problem tkwił w programie. W etykiecie "posow" w pętli za każdym razem wyświetlam zmienne "I" oraz "X" - zmiana stanu portu B.0 ograniczona była czasem wyświetlania zmiennych na LCD.
Witam. Tak na pierwszy rzut oka to masz błąd w programie bo w obu warunkach "case" sprawdzasz tę sama zmienną "W" a przed drugim case wpisujesz wartość z ADC do zmiennej "W1". W1 = Getadc(2) Wydaje mi się że zmiana nazwy zmiennej w drugim case na "W1" pomoże.
Nie wiem jak to w bascomie nie wnikałem w kod, ale można to zrobić tak że deklarujesz aktywację przerwania jednym zboczem, a po jego wywołaniu zmieniasz tą konfigurację na drugie zbocze (zmiana w rejestrze MCUCR). Albo wywołanie przerwania ustawiasz na dowolną zmianę sygnału i w jakiejś zmiennej przechowujesz stan wcześniejszy i porównujesz
wszystko pięknie tylko że ta opcja dodaje 0 przed samą cyfrą i znak + (wcześniej pokazałem przykłady jakie chcę uzyskać) Próbowałem też bez zera na początku i bez plusa (zastąpione spacjami) tylko wtedy tak jak mówię przy zmianie znaku liczba pływa
A gdzie się to robi - i o ile zwiększyć? Piszę na Atmega8. Dodano po 3 Pomogła zmiana z local na dim. Dzięki.
Przecież to to samo. String też zapisuje jedne znak pod jednym adresem. Dlaczego tak się uczepiłeś tego Stringa? Ja bym to zrobił na kilku zmiennych typu Byte. Ale jak chcesz ;p
Witam Jakim poleceniem/kodem mogę zrobić aby master cały czas wysyłał dana zmienną A(która cały czas ulega zmianie) do slava który cały czas nasłuchuje i ją uaktualnia?
No tak, bo ja nie mam w zamiarze mieć alarmu dźwiękowego. Więc usuń z programu także deklaracje odnosnie wymiarowania zbędnych zmiennych i uzupełnij poprawki j.w. Wytestuj program w symulatorze running "step into code" (F8) i w odpowiednich momentach kodu uzupełniaj 'ręcznie' zmiany logiczne pinów a także symulowane wartości zmiennych (np: odczyt temperatury...
No to tak. U mnie pamięć grafiki w LCD zaczynała się od 768. Stąd taka stała w programie. Wcześniej (od 0) była pamięć textu. Pixele są rysowane poziomo. Czyli każdy bajt reprezentuje 8 pixeli jako pozioma linia. I teraz dość nieprzyjemna rzecz. Mianowicie tryb wyświetlania zależy od trybu textu. Jak wybierzesz tryb 8-mio bitwy to każdy bajt będzie...
Co do wyłączenie światła po 30 sek. Dodaj dodatkową zmienną bit która będzie ustawiana np: na 1 po wyłączenia światła przez timer po 30 sekundach a dzięki niej nie będzie ponownie włączane światło przez wciąż otwarte drzwi (stan niski na wejściu uC). Dopiero zamkniecie drzwi ( stan wysoki na wejściu uC) spowoduje zmianę tej zmiennej na 0 dim 30SEK as...
Musisz sobie zrobić zmienną na której będziesz operował, po jej zmianie trzeba przesłać ja do PCF-a. Pozdrawiam Romek
W swoim programie zapragnąłem użyć instrukcji waitms i waitus przypisując im wartość zmiennej zależnej od pewnego wyniku działania. Ku mojemu zdziwieniu instrukcje te nie reagują na zmiany parametru wait w czasie programu. Czy tylko ja coś źle robię czy taki jest ten bascom?
no to właśnie są te zmienne T1 i T2 i ten warunek mam w warunku case 0
Jeśli umiesz obsługiwać peryferia to nie widzę problemu. Porównujesz jakąś zmienną z obecną temperaturą i sterujesz dowolnym pinem. Zmienną może dowolnie ustawiać za pomocą przycisków + -. Pozdrawiam.
Mój sposób zapisu do EEPROM'u jest kompletny i nie trzeba już używać Readeeprom i Writeeeprom. Tablicy zadeklarowanej w Eram używasz jakby była zadeklarowana w RAM'ie z tą różnicą, że zmiennych w Eram nie można stosować w sposób bezpośredni w wyrażeniach, itp. Musisz daną wartość z Eram skopiować do zmiennej tymczasowej w RAM'ie, wykonać działanie i...
Używam tej komendy z watchdogiem. Zawartość pamięci pozostaje bez zmian. Zasilanie jest cały czas takie same. Z resztą co za problem sprawdzić samemu?
Fusing pominięty, typ zmiennej też zmieniony i nic, R1=47k, zmiana adc już była na 6, potem 7 i nic. A fuse bitami przecież chyba nie można wyłączyć ADC?
Zapamietuj ostatni stan przycisku w innej zmiennej (w pętli) i jeśli się różni od bieżącego to inicjuj działanie.
Więc wysil się i daj program ze swoimi zmianami. Nie będę siedział i pisał Ci softu od zera. Sam pokaż co zrobiłeś inaczej temat do zamknięcia...
zmiana zmiennej bascom ustawienie zmiennej bascom zerowanie zmiennej
wyjęcie silnika focus lampy zamienniki zawór regeneracji bosch
esp32 radio internetowe esp32 radio internetowe
Junkers ZW 14-2 DV KE – brak ciepłej wody, przyczyny, diagnostyka, typowe usterki Zamienniki układu TDA7563BH: TDA7563A i inne