Problemy: 1)Nie wiem czy tak ma być, ale nie ustawiłeś na PortB.1 stanu wysokiego, aby podciągnąć złącze. 2)Źle zagnieżdżone IFy. Powinno być: [syntax=basic4gl]Do If Pinb.1 = 0 Then Waitms 20 L = L + 1 If L = 3 Then Set Portb.2 End If If L = 6 Then Reset Portb.2 L = 0 End If End If Loop [/syntax]
Albo z drugiej strony: wprowadzasz dodatkową zmienną przechowującą wartość aktualnego czasu w minutach (niestety potrzebna będzie zmienna typu word), podobnie czas załączenia - oczywiście przeliczanie to tylko x = Godz * 60 x = x + Min Pozostaje jedynie porównać obie zmienne.
Jeśli chcesz to możesz zmienić program na pc choć to odejmowanie 32 jakoś dużo czasu nie zabiera.
Np. W helpie do Bascoma. Akurat help Bascoma nie precyzuje wyraźnie tego zagadnienia. Natomiat w dośc prosty sposób datasheet określa właściwości rejestrów związanych z portami processora (str.51) "Three I/O memory address locations are allocated for each port, one each for the Data Register - PORTx, Data Direction Register - DDRx, and the Port Input...
tak kolega nie usunal ani decr ani incr z programu i to sa skutki . ale rzeczywiscie lepiej unikac odejmowania ulamkow w programie aby zaoszczedzic pamieci
Witam Ogólnie zmienna Zx jest większa od 255, ale nie większa od 350, i po to odejmuje od niej 100, aby "zmieściła" się w Byte. Nawet jak Zx jest mniejsza od 255, to i tak dzieje się to samo. Pozdro
Czyli masz już w systemie przerwania zgłaszane ze stałą częstotliwością, zapewne na poziomie przynajmniej kilkuset Hz. Oznaczamy tę częstotliwość jako f. Mamy zmienną a - długą i całkowitą. Inicjujemy ją na 0. W każdym przerwaniu timera: - Dodajesz do tej zmiennej liczbę kroków na 10 s (czyli od 1 do 99) - Jeśli wartość tej zmiennej przekroczy 10*f,...
Nie opanowałeś nawet poprawnego podłączenia diodek LED do procesora :D Jak myślisz, jak często do wartości PWM'a będzie dodawane 10 lub odejmowane 10?
może zrób to na przerwaniach .,Jedno obsługiwało by dodawanie drugie odejmowanie
Załóżmy że chcesz uzyskać 100Hz. Procesor kreci się na przykład 8MHz. Timer napędzany jest sygnałem takim jak procesor, ale można ten sygnał podzielić tak żeby, na przykład co 1024 takty procesora do Timera trafiał jeden takt. Taki podział uzyskuje się za pomoca preskalera. Teraz wiadomo że Timer jest już taktowany wolniej bo co 1024 takty z 8MHz, ale...
1 - doprowadź sygnały z czujników do trzech wejść jednego z portów 2- każdy z tych sygnałów doprowadź do wejścia przerwania INT0 ( odseparowane diodami lub przez transoptory np. CNY-17 ) Każde pojawienie się impulsu na jednym z wejść wyzwoli przerwanie INT0 W obsłudze przerwania sprawdzasz stan wejść i porównujesz z poprzednim stanem W zależności od...
Wtedy odpisałem o 4:40 to znaczy że pewnie kawę robiłem o 4:00 :D Nie piję gorącej kawy jak inni, czekam aż ochłodnie :D no i wtedy odpowiadam na emaile, przeglądam Elektrodę i inne fora ahahahaha :D Skądinąd wiem, że wczoraj miała być podjęta próba uruchomienia "tego czegoś" :D Daj na koniec jakąś fotę jak to działa :D Możemy dopisać warunek, że jak...
"attiny13.dat" $hwstack = 32 $swstack = 18 $framesize = 8 ' tiny13 Dlaczego na samym wstępie wyrzuca mi błąd w liniach: Pwm1a = 0 Pwm1a = 0 Pwm1a = 255 czy nie można przypisać stałej wartości dla Pwm1a? Kolejne błędy są również powiązane z pwm1a. Oczywiście że możne jeżeli taka funkcja jest dostępna. ATtiny13 takowej nie posiada bo nie ma Timera1,...
Pomysł jest straszny. Poczytaj o timerach. :D No dobra, ale w tym przypadku timer ma zliczać impulsy i ilość tych impulsów dodawać lub odejmować od zmiennej? I czy do tego wystarczy jeden timer, czy dwa (do dodawania jeden i do odejmowania jeden)?
Nie ma gotowej komendy w Bascomie i zaczynają się schody:) Na forum wiele razy był poruszany temat konwersji do BCD. Metody są dwie. Cykliczne odejmowanie, albo dzielenie. Poszukaj dobrze:)
Witam Szanownych Kolegow... Czy posiada ktos moze opracowana procedure dodawania liczb calkowitych (wprowadzanych z klawiatury) w Bascom? Liczby sa 2 cyfrowe. Poczatkowa liczba jest zero. jesli mam operacje dodawania, wynik jest zwiekszany i zapamietany, podobnie z odejmowaniem... Bardzo prosze o pomoc.
Pytałeś o różnicę między Reset a "= 0" więc.. Co do Timera to w Bascom jest komenda ułatwiająca jego ładowanie. Nie trzeba odejmować na piechotę. Przy Presc=8 wpisujesz Load Timer1 , 1500 Przy Presc=1 Load Timer1 , 12000 i powinno być 1kHz bo z 12000_000Hz zostają trzy zera i można to policzyć w głowie, albo na palcach :D Kompilator sam to sobie odejmie...
Może kiedyś zaczniesz myśleć "inaczej" :D Jak zrobisz tak to program utknie tutaj na 128ms aż petla się wykona co nie? [syntax=vbnet]Do If Audio = 1 Then For R = 255 To 0 Step -2 Waitms 1 Next R R = 0 End If Loop End[/syntax] Teraz zobacz ciut inne podejście do tematu [syntax=vbnet]Do If Audio = 1 Then If R = 0 Then R = 254 'wartosc zostanie nadana...
A i B są poprawne :) Odnośnie jeszcze punku B. Powinieneś mierzyć szerokość impuslu, czyli czas od zbocza narastającego do opadającego. Ponieważ ATMega tego nie potrafi robić całkowicie sprzętowo, więc zostaje punkt A. Szerokość sprzętowo może mierzyć dopiero XMEGA. Można też czasy pomiędzy kolejnymi zboczami opadającymi, ale wtedy trzeba zadbać o to,...
Dzieląc (w zasadzie to mnożąc bo mniej zajmuje pamięci niż dzielenie) przez odpowiednią wielokrotność 10 i odejmując. Na kartce sobie rozpisz co od czego odjąć i co przez co pomnożyć i będziesz wiedział co i jak. Musisz z liczby wydobyć jednosci,dziesiatki,setki,tysiace..itd.
Adres juz mam, ale nie chce sie dać wysterowac, chodzi mi o sterowanie jednym potencjometrem albo następnym, dokładnie chciałbym się dowiedzieć jak wygląda kawałek kodu który wybiera potencjometr i dodaje wartość lub odejmuje.
Ok, no powiedzmy, że dociera. Jedno pytanie jeszcze: Masz użyte zmienne Wlacz_zima i Wylacz zima, które trzeba zadeklarować osobno, a czy nie lepiej zadeklarować je w podprogramie, bo zdaje się, że nie są potrzebne poza tym podprogramem? A "zwracana-odliczana" jest wartość zmiennej Zima_lato na podstawie której dodajemy lub odejmujemy godziny np z GPS...
Nie mowie o Twoim wpisie, tylko ogólnie - jak postrzegam rozwiązywanie problemów na tym forum. Ktoś o coś zapytał? Ok, więc zajmujemy się wszystkim innym, byle nie tym o co autor pyta. 3, 2, 1 start! :) Wracając do ukladu: Jest to stan zastany i próba dorobienia do tego płynnego migania Led (rozjazsnianie/ściemnianie, ale nie 1/-1 tylko np kiedy jedna...
Dzięki kolego ale mnie zaćmiło że polecenie nest niekompletne program działa. I jest w zakresie 1-255 Muszę tylko jeszcze zrobić że: Np I min=1 i jak odejmuje to aby nie wskakiwało na 255 możesz mnie naprowadzić???
Na naciśniecie przycisku robisz żeby jakiejś zmiennej przypisał (w momencie jego naciśnięcia) odczytaną wartość z przetwornika a później za każdym razem od aktualnego odczytu odejmujesz wartość tej zmiennej. Poza tym nie ma raczej sensu w przerwaniu od przycisku (czy w jakimkolwiek innym sposobie odczytu stanu przycisku) robić ponownego odczytu przetwornika....
dzielenie w bascomie zjada bardzo dużo zasobów... zamień liczbę na hexy albo binarnie i dodawaj albo odejmuj, [url=http://edu.i-lo.tarnow.pl/inf/alg/0... binarne to w zasadize odejmowanie z przesunięciem...
Ldi R30, 28 Ldi R31, 78 Rcall _lcd_delay ; 20 ms delay at 4 MHz Witam, przedstawiony kod asemblerowy jest niezmiernie prosty w edytowaniu i zmienianiu parametrów instrukcji. Ldi - jak każdy wie, to ładowanie odpowiedniej wartości do rejestru Rcall - wywołanie programu. _lcd_delay: Sbiw R30,1 ;2 cycles Brne _lcd_delay ;2 cycles Ret Sbiw - instrukcja...
Uważam, że moderator ... Działania moderatorskie wykonuję na czerwono za pomocą odpowiednich funkcjonalności. Niestety raz się zdarzyło że na czerwono wyciąłeś tekst o "niewygodnym" środowisku programistycznym :D Ale nie o tym będę pisał. Napiszę jak to wyglądało u mnie. Ja zaczynałem od BASCOMa. I to BASCOMa '51. Były artykuły w EdW. Nie miałem jeszcze...
Kod wydaje się sprawować prawidłowo. Przecinek jest względny. Operacje na zmiennych z przecinkiem są męczące dla mikrokontrolera. Jesli nie jest to konieczne to należy ich unikać. Zauważ że sam DS nie wysyła Single tylko Integer. Każda zmienna z jednym miejscem po przecinku pomnożona przez dziesięć da liczbę całkowitą. Tutaj przecinek jest "wirtualny"...
czy program skladający się z poleceń bascoma i wstawek assemblerowych będzie zajmował mniej miejsca niż taki sam program napisany tylko w bascomie?? Będzie zajmował mniej miejca. Najwięcej możesz zaoszczędzisz zastępując pętle i IF-y a także dodawanie/odejmowanie na zmiennych dwubajtowych. Mnie się udawało zbić 20-30% kodu jak próbowałem się zmieścić...
Kłania się po prostu - najprostsza matematyka ;) masz np liczbę 123 i chcesz wyodrębnić poszczególne cyfry żeby je po kolei wrzucić na wyświetlacz LED 1. dzielisz liczbę 123 przez 100 - resztę z dzielenia odrzucasz i pozostanie ci cyfra odpowiedzialna za setki czyli 1 - prawda ? ;) 2. odejmujesz od liczby 123 liczbę 100 - bo wyżej już wykonywałeś dzielenie...
Coś w ten deseń chociaż żeby to przetłumaczyć toczka w toczkę to najlepiej by było użyć Config Base = 0. Wtedy tablice mogą się zaczynać od indeksu zero czyli można by wpisywać do Delays(0) - Delays(Steps-1) a tak tego nie masz. Tutaj może nawet nie jest potrzebny warunek If I > 1 bo to chyba w Arduino jest po to by nie było mnożenia I * 4 + 1 bo...
Użyj wejścia ICP - wtedy zbocze zgłasza przerwanie i jednocześnie zatrzaskiwana jest zawartość timera. Odejmując dwie takie wartości masz długość impulsu, musisz jedynie zmieniać zbocze, na które reaguje ICP.
Przepraszam ale w pierwszej wypowiedzi popełniłem błąd logiczny - oba przerwania powinny być ustawione na te same zbocze a nie różne. Dlaczego, bo tak jak napisałem wcześniej nie będzie można określić kierunku zmian, zawsze bedzie ta sama kolejność wywoływania przerwań. Obojętnie czy kręcimy w lewo czy w prawo. np. ChA narastanie 0->1 a ChB opadanie...
Witam. W jaki sposób można w kompilatorze Bascom zapisywać w jednej linii więcej niż 2 operacje matematyczne - tj. dodawanie, odejmowanie, iloczyn 2 zmiennych itp.. Bo mam złożone działania, a dzielenie tego na poszczególne kroki mające za każdym razem tylko 2 zmienne które przykładowo mnożę jest bardzo uciążliwe i muszę stosować dodatkowe zmienne pomocnicze......
Witam, Może takim sposobem, żeby ręcznie stworzyć bazę danych godzin i minut wschodów i zachodów (na oko na dzień mamy 4 bajty danych x 365 dni to daje 1,5k kodu, dość dużo wpisywania). Następnie bierzemy dany dzień roku (jest na to procedura w bascomie) i mnożymy x4 i odejmujemy 4, czyli Adres =( dzien_roku * 4 ) - 4, po czym wywołujemy od tego adresu...
No widzę, że ktoś nie uważał na lekcji matematyki ;) Sposobów jest mnóstwo ... można dodawać, odejmować wielokrotności (potęgi) dwójki, można stosować operacje logiczne and, or, xor .... wszystko zalezy co chcesz osiągnąć lub jak szybko ma to działać.
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...
Dziękuje ... wpis i odczyt działają a jak mam przechodzić po po szczególnych zapisach bo jak dodam wyświetlanie [syntax=basic4gl]Plus: '/reczna incrementacja czestotliwosc poczatkowej freq_0 = freq_0 + 200 Locate 1 , 1 : Lcd Freq_0 Return minus: '/reczna decrementacja czestotliwosc poczatkowej Freq_0 = Freq_0 - 200 locate 1,1:lcd freq_0 return[/syntax]...
Najprościej zrobić to tak: wyliczasz napięcie z proporcji, ale nie do 20 tylko do 2000. Następnie dzielisz to przez 100 a wynik zapisujesz do liczby całkowitej - masz to co przed przecinkiem. Potem mnożysz to przez 100 i odejmujesz od pierwotnego napięcia - masz to co po przecinku. Wyświetlasz tak jak napisałeś. LCD przed_przecinkiem;",";po_przecinku;
crystal/prescaler-1 W jakim celu odejmujesz od 62500 1 ? Chodzi Ci o jeden przebieg zegara ?
Witam serdecznie Mam pewien dylemat, problem Sprawa dotyczy Bascoma Mam Encoder 360 imp / 360 st wyjścia A, a oraz B , b (A i B stan wysoki oraz a i b stan niski) Między A i B jest przesunięcie impulsu o 50% do zliczania impulsów poszły 1 liczniki INT0 oraz INT1 Wszystko zlicza szybko itd Problem dotyczy rozwiązania a żeby bez zaprzęgania jakiejkolwiek...
Tak, będziesz mógł. Jeśli chcesz liczyć w czasie (a nie chcesz) to mierzony przebieg doprowadzasz do wejścia zegarowego timera, w efekcie każdy impuls powoduje zwiększenie wartości licznika o jeden. Skoro chcesz mierzyć szerokość impulsu to wykorzystujesz wejście ICP timera - timer taktujesz z maksymalną częstotliwością, z kolei impulsy z obrotomierza...
Nie wiem czemu piszesz żeby odejmować od 65535 Zastanów się chwilę jeszcze nad tym, co trzeba odejmować od 65535, jak jak to obliczam (nie korzystam z żadnych podpowiedzi, tylko używam własnej głowy) - przejrzyj moje wcześniejsze wpisy i powinno być to już jasne.
(zmieniłeś post zanim odpisałem więc mój może być trochę nieaktualny) Hahaha z jednej strony racja i czasem się najprostszych spraw nie widzi Tak naprawdę to ASC odejmuje tylko od reprezentacji znaku 48 W sumie wiec można by odejmować od razu 48 i 32 :D Chciałbym jedynie dopisać że te wyliczenia Const robi komputer/kompilator i sa one już jako gotowe...
Witam wszystkich i mam pytanie czy ktoś zajmował się licznikiem do CNC . Chodzi mi o zliczanie kroków jakie wykonuje silnik krokowy sterowany sygnałami STEP/DIR . chciałbym aby licznik liczył w obie strony czyli dodając lub odejmując . Ważna była by możliwość wprowadzania przelicznika przekładni silnik/śruba napędowa . Oczywiście proszę o pomoc w napisaniu...
Obawiam się, że AT90S2313 nie jest tak ambitny jak Ty. Aby wyświetlić temperaturę z dokładnością do 0,1'C z DS 1820 trzeba przeprowadzić kilka obliczeń na odczytanych z czujnika bajtach 7 i 8 (a nie tylko na 1 i 2). Wymaga to operacji na liczbach zmiennoprzecinkowych (chyba, że ktoś się zaweźmie i spróbuje zrobić to na typie Integer). Takie kombinacje...
:arrow: też spotkałem sie z takim sposobem, nie było wydawane polecenie zanegowania liczby, tylko właśnie jakieś odejmowania... Osobiście nie sprawdzałem tego sposobu, ale program z tym cudem działa
Początkową wartość Timera1 liczymy: Częstotliwość / preskaler i wynik odejmujemy od 65536 (bo timer1 liczy do tylu) czyli 16000000 / 1024 daje 15625 65536 - 15625 = 49911 I tą wartość ładujemy do timera1
Dobrze nawet zrozumiales z tym znakiem. ale jesli temperatura jest ujemna to negujesz calosc i odejmujesz 1 zeby miec poprawna temperature (potem dzielisz na 16). i tyle filozofii.. a swoją drogą nie masz zamrazalnika? wez kostke lodu i sprawdz.... ;]
Po drobnej zmianie kodu działa dobrze (matematycznie) domind A na razie problem rozwiązałem tak, że od zadanej wartości Y odejmuję zakładany czas wykonania pętli i jest OK.
Witam. 1)Jeśli to urządzonko ma zliczać "do tyłu" , po co te kombinacje z dodawaniem i "odwracaniem" wyświetlanych cyfr :?: 2)uC potrafią też odejmować :wink: 3)Nie powinieneś zatrzymywać Timer0 , bo przestanie odświeżać wyświetlacze. Napisz dokładnie co chcesz osiągnąć. Pozdrawiam Piotrek Sz.
Witam. Potrzebuje zrobić układ którego zadaniem będzie obniżenie wartości napięcia wejściowego (zmieniającego sie w granicach od 0 do 5V) do napięcia proporcjonalnego do napięcia wejściowego ale w zakresie od 0 do 2V. To tak jakby od wartości napięcia wejściowego odejmować ileś tam procent. Myślałem nad zastosowaniem jakiegoś małego procesorka np. attiny13,...
http://www.nalanda.nitc.ac.in/industry/a... http://class.ece.iastate.edu/vlsi2/docs/... http://www.freepatentsonline.com/4447803... Oversampling poprawia rozdzielczosc ze wzgledu na szum (wszechobecny) ktory dziala jak dither - jednak potrzebne sa duze wspolczynniki oversamplingu by zobaczyc...
Naprawdę nikt nie jest w stanie nic pomoc ? Miało by to mniej więcej wyglądać tak: -sygnał podawany na ICP ma postać kwadratową -zbocze opadające powoduje zapis wartości timera do rejestru sprzętowego -odejmując kolejne wartości rejestru od siebie uzyskuję czas jaki upłynął między impulsami -obliczając odpowiednio czas uzyskuję ilość impulsów na minutę
Aby rozwiązać ten problem wystarczy przejrzeć notę MCU. Offset, który jest wprowadzany celowo, dla pomiaru napięć oniżej GND można usunąć, albo przez kalibrację - trzeba offset zmierzyć i go odejmować od pomiaru, albo wykorzystując tryb różnicowy ADC. W tym trybie wystarczy jedno z wejść (-) programowo podłączyć do GND i mamy pomiar bez ofsetu.
PANOWIE DZIALA!!!!!!!! Juz tlumacze oco chodzi i gdzie blad ale najpierw skladam WIELKI SZACUNECZEK i PODZIEKOWANIA DLA PANA "WADER_669"!!!!! Oraz wszystkim tym ktorzy mieli szczere checi w pomocy. CYTUJE: POCO INCR ZMIENNEJ ENKODER SKORO BASCOM JUZ SAM DODAJE I ODEJMUJE IMPULSY, ZRESZTA ON LICZY NA TEJ ZMIENNEJ TYLKO DO 4. A JA MU NA DODATEK JESZCZE...
Opis magistrali 1Wire masz w helpie. Poniżej kod na obsługę dallasa DS18B20. Config 1wire = P1.0 'konfiguracja magistrali 1wire Config Lcd = 16 * 1a 'konfiguracja wyswietlacza Deflcdchar 1 , 4 , 10 , 4 , 32 , 32 , 32 , 32 , 32 'znak stopnia Dim T1 As Single Dim T2 As Single Dim B1 As Byte , B2 As Byte , R As Byte Dim Tmp As String * 6 Dim Znak As String...
Witam. Mam problem z wyświetlaczami LED. Nie wiem za bardzo jak liczbę np. 1993 rozłożyć na cyfry 1;9;9;3. [youtube]http://www.youtube.com/watch?v=... Na tym filmie można zauważyć, że liczby nie są tak super wyświetlane. Coś przeskakuje... Wracając do problemu wiem, że trzeba liczbę 1993 podzielicz przez 1000 później przez 100 ; 10....
Tak jak kolega wyżej pisał: Masz dwie zmienne ze znakiem (w bascomie to chyba integer) kierunek oraz gaz. Do pierwszej przypisujesz wartość kierunku a do drugiej przyśpieszenia. Od obu odejmujesz 150. Kierunek mnożysz przez 2. Wartość pwm dla lewego silnika to gaz-kierunek+127 a dla prawego gaz+kierunek+127. Nie wyciągniesz tak maksymalnej prędkości...
Mowa o Bascom. Ale tak to jest jak się chce przedobrzyć. Wart_adc0 = Getadc(0) Wart_adc0_1 = Wart_adc0 * 0.501942605 'kalibracja temperatury wewnętrznej Wart_adc0_2 = Wart_adc0_1 - 273.15 ' od °C odejmujemy °K Wart_adc0_3 = Wart_adc0_2 Lcd Str(Wart_adc0_3) ... i ładnie wyświetla w stopniach Celsjusza z dokładnością do 1°
Przecież JmL(TM) dość szczegółowo ci napisał jak to wykonać. Chyba że liczysz na gotowca, jeśli tak to nie tędy droga. Zrób sobie zmienną i w niej zapamiętaj wynik pomiaru. Przy kolejnym odczycie od tej zmiennej odejmij aktualną temperaturę: - jeśli wynik tej operacji będzie ujemny to temperatura spadła i strzałka w dół. - jeśli wynik równy jest 0 to...
...to banalnie proste :D zalaczasz timer gdy pojawi sie na pinie masa...czekasz na wystapienie jedynki...i patrzysz ile timer zdazyl zliczyc...:D lub... timer chodzi caly czas...gdy pojawi sie masa zapisujesz stan timera a gdy sie skonczy takze zapisujesz... odejmujesz to pierwsze i juz masz :D prawda ze bardzo proste ?? :D Nikt nie bedzie pisal kodu...
taki uklad powinienes zbudowac podobnie jak serwo modelarskie moze sa jakies gotowce , czy na pewno chcesz to budowac na mikrokontrolerze? W wersji nieprogramowalnej to kazdy np poczatek impulsu wyzwala 2 monowibratory jeden dodajacy obroty drugi odejmujacy, impulsy sa porownywane(odejmowane) i to co zostaje-reszta kreci silnikiem zwiekszajac lub zminiejszajac...
Witam wszystkich!! mam taki problem... napisalem program w BASCOMIE: Dim Generator As Byte , Czujnik As Byte , Wynik As Byte , Gen As Byte , Czas As Byte Portd = 3 Cls Do Debounce Pind.0 , 0 , Gen , Sub Debounce Pind.1 , 0 , Czu , Sub If Generator = 10 Then Wynik = Generator - Czujnik Generator = 0 Czujnik = 0 Lcd "WYNICZEK= " Lcd Wynik End If Waitms...
Dodajesz jeden warunek przed decr by wykonać zmniejszenie o 1 tylko jeśli dajmy na to M jest większe od zera. W przeciwnym wypadku w ogóle program pomija odejmowanie tylko nadaje wartość 59. Przy okazji prawdopodobnie masz zmienne Byte - w tym wypadku nie ma jako tako wartości ujemnych (są w C dla signed char, int8_t) więc ten kawałek: If M < 0 Then...
To jest tak: Nie robisz żadnych dzieleń- tylko dodawanie i odejmowanie- jak w księgowości. Bierzesz kredyt na 65535zł. Twoja początkowa wpłata na rzecz banku wynosi 64300zł. To masz do spłacenia 1235zł. Szybko spłacasz- co miesiąc 102.92zł. Ale jak Twoja początkowa wpłata wynosi 0zł- to spłacasz znacznie dłużej po 102.92zł. Tak działa licznik 16 bit....
Nie znam wszystkich aspektów radii, ale pisałem już kilka programów dla innych na nie. Mam emulator radia do programu HAM i takie tam różne :D W Twoim przypadku odpowiedź wydaje się oczywista. Użyłbym odpowiednio dużej zmiennej która będzie trzymać wynik i na niej działał (dodawał albo odejmował) po czym wynik zamieniałbym na string i tak wysyłał. Zmienna...
Poszukaj w sieci programu PDUSpy. Popatrz też jak ja to w Bascomie zrobiłem: http://www.elektroda.pl/rtvforum/viewtop... Jednak dobrze liczysz i powinno działać Ja obliczam tak Ilość wszystkich znaków PDU dzielę przez 2 i odejmuje 8 i wychodzi: 138/2-8 = 61 Nie wiem co jest nie tak.
z tym się nie zgodzę ustawiam je na 1 a drugim końcem są podłączone do masy jeśli go naciskam wtedy pin zwiera się do 0 o procek widzi to jako zero dopiero wtedy dodawanie i odejmowanie wartości P I tymi przyciskami działa prawidłowo (no czasem potrafi dodać np 5 odrazu, ale to nie problem) więc na początek myślę że nie w tym tkwi problem no chyba że...
To norma że mają taki offset. Jednym z rozwiązań jest oprogramowanie jednej nogi procka jako wyjście i zwarcie nią pinu ADC do masy. Wtedy mierzysz ten offset który potem odejmujesz od następnych pomiarów (już bez tej masy) Poczytaj o ADC w Xmega - są trochę "inne" :D Bajty kalibracyjne w sygnaturze itp kwiatki.
Czym mniejsze zmienne tym szybciej działa program , jak są 8 bitowe to super bo każde dodawanie , odejmowanie mnożenie to 1clk . tego tyczyła się dygresja "na marginesie" Ahahaha :D Co do tej konwersji to jest ona dokonywana w zarezerwowanej ramce której wielkość jest określana parametrem $framesize. Z ramki korzysta wiele wbudowanych funkcji i dlatego...
Wszystko gra tylko co zrobic żeby przyciskiem S2 odejmowac?
Może jakaś kawa by pomogła ;) Zastanówmy się co tu robimy A = 1000 A = A - 1 ..czyli A = 999... X = A czyli X = 999 i dzielimy je przez tysiąc tak? T = X / 1000 ...hmm jeśli T nie jest typu Single to 999/1000 to 0 Teraz mnożymy Zero razy tysiąc tak? Wynik = 0 Odejmujemy od 999 zero tak? Potem.. Y = T * 1000 S znowu równa się 999 / 100 ..czyli 9 Z =...
Program do czujnika temp ds18b20 ktory mierzy z dokladnoscia dwoch miejsc po przecinku. Sprawdzony ale tak jak juz koledzy mowili wyniki po przecinku bardzo czesto skacza Deflcdchar 0 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32 Config Pind.7 = Output Config Pind.4 = Output Config Pind.5 = Output Config Pina.6 = Output Config Pina.7 = Output Set Portb.0 Set...
Co do Bascoma - to z postów na forum wynika że mnóstwo ludzi programuje w Bascomie, przecież aby liczyć całki też najpierw trzeba nauczyć sie dodawać i odejmować. Co do czujnika na IR - to zrobiłem taki na TSOPie1736 i śmiga ładnie, wykrywa z jakichś 15 cm. Dlatego też chciałem wejsc w ultrasonic, bo tego jeszcze nie opanowałem. I tak poza tym, to na...
Jak dla mnie to przekombinowane, raczej trudno będzie zapanować nad w miarę stabilną częstotliwością. Masz racje..sprawdziłem to właśnie w praktyce...nie dość, że obliczanie nowych (po przepełnieniu timera1) wartości OCR1x trwa trochę, to częstotliwość nie jest stabilna i niedokładna z obliczeniami. A obliczanie i odejmowanie jakichś wartości wynikłych...
Jak w tytule . Znalazłem pdf dla teg czujnika ale tam właściwie wszystko oparte jest o funkcje API a ja chcę użyć ten czujnik w bascom . Potrzebuje opis rejestrów .Znalazłem coś takiego , przekonwertowałem i pomiar robi ale to nie jest zadowalające . [syntax=c]#chip mega328p, 16 #option Explicit #include <glcd.h> #include <uno_mega328p.h >...
Co prawda ten przykład co podam poniżej dotyczy liczenia sekundy, ale nic nie stoi na przeszkodzie przerobić kod wg swoich potrzeb. Generalnie przy 8 mhz i preskalerze 256 timer zlicza 31250 na sekundę. Czyli w przyblizeniu 31 na milisekundę. Odejmując jedną próbkę od drugiej otrzymamy czas pomiaru. Polecam zastosować timer w trybie CTC jaki podał mi...
Proszę. Przycisk Menu włącza je i wyłącza więc przycisk wyjścia z Menu praktycznie jest niepotrzebny, ale go zostawiłem. Subów którym nie przekazuje się żadnych zmiennych nie trzeba deklarować. Miałeś odświeżanie wyświetlacza w pętli głównej z prędkością procesora. Zmieniłem to tak że wyświetlaczem zajmuje się tylko wtedy jeśli coś się zmieniło i wymaga...
Coś znalazłem jest w kodzie obliczanie pozycji: Sta = B1 * 15 Sto = Sta + 14 Pozycja = Licznik2 - 6 B = Pozycja * 15 Licznik 2 zaczyna liczyć od 6 więc 6-6 *15 = 0 a w procedurze wyświetlającej następuje odejmowanie od b liczny jeden w każdym odświeżeniu więc zamiast ciągu 15,14,13,12... mam 255,254,253,252... i podejrzewam że to jest powodem wariowania...
W tym subie co jedną sekundę masz odejmowanie od jedności sekund ale żadnego wiecej warunku wiec.. masz sec 0 i potem 255. Zobacz co się stanie jak trochę pomodzisz :P [syntax=basic4gl] Dim 1sec As Byte Do If 1sec = 1 Then 1sec = 0 Jesli liczymy w dół Then Gosub Zmniejsz Else Gosub Zwieksz End If Jesli End if 'end if 1sec Loop End Co1s: Counter1 = Counter1...
zapominasz ładować konkretną wartość do licznika przed jego uruchomieniem. obliczasz ją (w podstawowym trybie) mniej więcej tak: obliczasz czas jednego cyklu 1/fclk np dla 1Mhz 1us bierzesz teraz czas, jaki chcesz odliczyć, i dzielisz go przez czas jednego taktu, dostaniesz wtedy ilość potrzebną do zliczenia.np 0,020s/0,000 001 = 20000 jak wiesz licznik...
Witam. Zna ktoś rozwiązanie jak ugryźć temat przesyłania danych taką trasą: PC <-RS232-> AVR <-RS232-> Układ docelowy Komputer i urządzenie docelowe mają ze sobą rozmawiać dwukierunkowo, AVR ma być pośrednikiem transmisji oraz dodawać / odejmować swoje dane kontrolne. Obie transmisje muszą być buforowane. Jakie znacie procki które spełnią...
efekt peaks tak najwyższa dioda opada powoli. szło przełaczaś że był tylko peaks, peaks + słupek i tylko słupek ale to tylko wyświetlanie danych. co do wartości ujenych to fragmęt kodu Poziom = 0 For K = 1 To 32 Sample(k) = Sample(k) / 2 Poziom = Poziom + Sample(k) Next K Poziom = Poziom \ 32 For K = 1 To 32 Dane(k) =...
Tzn, menu główne ma się zawierać w case 1, 2, 3 zgadza się. Naciskając OK dodaję do zmiennej menu 10, czyli przechodzę na podmenu MANUAL czyli case 11, 12, 13, 14. Teraz w zależności, który case jest wybrany (przypuśćmy 11) to aby przejść niżej przyciskam DOL dodaję do zmiennej 1 i przechodzę do case 12. Aby przejść wyżej przyciskam GORA dodaję do zmiennej...
zamiast debatowac sprawdz to na symulatorze <; w rzeczywistosci liczba 64336 i -1200 odpowiadaja dokladnie temu samemu zapisowi binarnemu (wiec i hexadecymalnemu) w pamieci dla slowa 16bitowego: 0xFB50. wszystkie problemy biora sie wlasnie z tego, ze liczbom binarnym na sile chce sie przypisac wartosci dziesietne, a to wlasnie tak sie konczy. wspaniala...
Ktoś tu zaraz wstawi pewnie gotowy kod ale. Napisałęś około wiec dokładność chyba nie gra roli. Zrobić tak aby tajmer przepełniał sie sam (config timerx timer, start timerx, enable timerx, enable interrupts). W procedurze obsługi tajmera (on timerx przerwanie_tajmerx, przerwanie_tajmerx:) zrób zwiększanie (if jakas_zmienna>0 then decr jakas_zmienna)....
Witam. Jeśli można to bym prosił kolegę asembler o jeszcze trochę dokładniejsze opisanie tego sposobu pomiaru napięcia bo bardzo mnie to zaciekawiło. 1.22 V to stałe napięcie odniesienia wytwarzane przez procesor , na jego podstawie przez wbudowane wzmacniacze operacyjne wytwarza on napięcie 2,56 V . To rozumiem. Jeśli napięcie zasilania podamy również...
Witam jak dłużej przytrzymuje guzik dodawania czy odejmowania temperatury to stacja sie resetuje lub wyskakują tzw. krzaki na wyświetlaczu. Nie wiem z czego to wynika, ale w kilku projektach na Atmega8 i Bascomie zdarza mi się od czasu do czasu taka przypadłość (w tej stacja chyba też ze 2 razy - przyzwyczaiłem się i korektę robię przytrzymując przycisk...
Deklarujesz zmienną czas jako integer i wszędzie dajesz waitms czas. Teraz deklarujesz np. zmienną poz_czas - będzie ona posiadała wartości np. 1-10. Piszesz obslugę tych przycisków (tak jak dla góra/dół), tylko umieś je w odpowiednim miejscu kodu (my go całego nie widzimy). W instrukcjach warunkowych dla przycisków obsługujących czas daj Incr poc_czas...
Nie ma już czasem biblioteki do tego LCD na forum MCS? Co do obsługi tej linii przez kod to to chyba nie jest skomplikowane. Ten sub wygląda jakby był stworzony do rysowania linii różnie położonych czyli na przykład przekątnych. Jako parametry przekazujesz X i Y startu, potem X i Y ostatniego piksela linii no i kolor. Problem zaczyna się w miejscu gdzie...
Cześć Oczywiście że nie lepiej mierzyć osobno i odejmować, ale to osobna bajka. Do pomiaru różnicowego musisz jeszcze podać z jakim wzmocnieniem chcesz mierzyć i dla tego wzmocnienia określasz Mux Binarnie to będzie : 10000 dla x1 01001 dla x10 01010 dla x200 Tą liczbę wstawiasz do Getadc( .. ) czyli dla wzmocnienia x1 wstawiasz 16 Oczywiscie musisz...
Witam i dziękuję za pomoc. Nie mam żadnego doświadczenia w pisaniu programów,chcę zrobić licznik zliczający od 9999 do 0 w dół i wgórę, procek to attiny2313,czy zlicznie zrobić poprzez zadeklarowanie zmiennej i do niej dodawać lub odejmować impulsy zliczane z wejścia procka?, w jaki sposób używając podanych wcześniej programów obsługi 74ls164 wyprowadzić...
Wklejaj kod z użyciem opcji Listing kodu . Dlaczego co druga linia jest pusta? Co to jest Liczba ? Chyba nie zajrzałeś do dokumentacji co zwraca funkcja Byte obsługuje wartości od 0 do 255, więc nigdy nie spełni warunku < 0. Nie wiem, po co to sprawdzasz? W procedurze Prawo odejmujesz zamiast dodawać. 0 - 1 daje 255. Wygląda, że w Twoim zegarze doba...
Jeśli będzie sterował napięciem np. 5V to od tego napięcia odejmujesz spadek napięcia na diodzie i dopiero dzielisz przez prąd diody. W praktyce ja zawsze biorę ciut większy rezystor - w tym przypadku dla 5V możesz spokojnie użyć nawet 330-470om. Tak, podciągniecie wejścia to Set PortX.Y tylko wg Twojego schematu to będzie port D, a nie B, czyli Set...
Samo wykorzystanie M32 do minutnika jajek jest już nieekonomiczne, ale zakładam, że taki masz procesor na stanie. Po pierwszej nie używaj takich warunków... Jak rozwiązujecie sprawę migania dwukropka? Ja zazwyczaj dwukropek też robię w multipleksie (gdy nie mam wolnych pinów uP) łącząc go z pinem sterującym kropką wyświetlaczy i włączam podczas wyświetlania...
witam, rzeczywiście dla przetwornika 10 bit trzeba użyć zmiennej dwu-bajtowej czyli tablica miałaby 2kB. Niemam tyle miejsca w atmedze, zreszta w bascomie utrudnione jest tworzenie tabel w pamięci ROM. Już tłumaczę, czemu do wejścia uC trzeba dostarczyć sygnał w skali liniowej. Załączony wykres kończy się w temperaturze gotowania wody (wg termometru...
...Mozesz sprobowac wykorzystac dodatkowo - jako uklad posredniczacy miedzy np enkoderem ,a uC jakis licznik... Jeden 7400 ustalający czy dodajemy czy odejmujemy, oraz cztery 74193 pozwalają Ci zliczyć dwubajtową wartość. Jeśli do tego dodasz nastawniki BCD, to możesz jeszcze kożystać z sygnału resetującego licznik z enkodera - będzie wtedy liczył...
a w jakim języku programujesz ? Bo np.: w Bascomie jest gotowa funkcja. Programuje w asemblerze. Teraz mi się przypomniało, że 6 się dodaje po dodaniu dwóch liczb bcd. Najpierw do mniej znaczącej liczby. Jesli nie nastąpi przepełnienie półbajtu to się tą 6 spowrotem odejmuje, jak nastąpi to się zostawia i robi to samo ze starszym półbajtem. ... Więc...
bascom string odejmowanie excel odejmowanie odejmowanie godzin
tranzystor to220 podgląd rejestrator excel format komórki
pilot samsung parowanie wiertarka bułgarska
Naprawa awarii sprzęgła w piecu Zębiec: krok po kroku Wyświetlacz nie działa w piecyku Vaillant mini PL 11/00