Przy pierwszym Case masz: Call Cyfry(cyfra) Select Case Cyfry gdzie Cyfry to procedura. Nie wgłębiałem się w to co ten program ma robić więc nie wiem co powinno być (może Cyfra). W kilku miejscach jako warunek jest podane: S1 = proponuję podać czemu ma się równać S1 :) Tu masz pomoc: http://edw.com.pl/ftp_05/BascomBasicAVR.... Poczytaj koniecznie...
Witam. Elektroniką zajmuje się już dłuższą chwilę, ale coraz częściej zachodzi potrzeba zrobienia jakiegoś układu na procesorkach, więc chcialbym się nauczyć pisać proste programy np. pod PIC-a, a że jestem w tym "zielony' to mam do Was kilka pytan z tym związanych: - jaki język programowania najlepiej wybrać - jakis dobry kurs danego języka - programy...
$regfile = "attiny13.dat" $crystal = 1200000 'częstotliwość taktowania .............. Czy kod jest poprawny? Mam pewne wątpliwości. Chciałbym aby przerwanie było wykonywane np. co 5 sekund a pętla główna była sprawdzana cały czas. Nie, ten kod nie ma szans na kompilację, a nawet jeśli udałoby ci się go skompilować to jego działanie byłoby...
Wystarczy Err = 1. Getatkbd samo wyzeruje zmienną Err jak zobaczy że jest ona równa 1. No i oczywiście na tym zakończy swoje działanie.
Histereza jest zadeklarowana jako Single. Zmień to na Integer bo szkoda miejsca. Po tym ustaw Histereza = 20 i powinno jakoś działać. Temperatura 60st.C to u Ciebie I1 = 600 a przecinek jest dorysowywany funkcją Format. Dlatego różnica stopnia to różnica równa 10 a nie jeden.
O ile mi wiadomo to Bascom w jednym wierszu potrafi wykonać tylko jedno działanie i tylko na dwóch zmiennych i tak też jest napisane u mnie to równanie.
To tylko opóźnienie. DJNZ zmniejsza zawartość rejestru R7 i skacze do etykiety Et1, aż wartość tego rejestru będzie równa zero. W bascomie można użyć instrukcji waitus 40 w tym przypadku będziesz miał opóźnienie 40 us
Na moje oko 4046 to najlepsze rozwiązanie. To ja podpowiem że trzeba tylko minimalnie zmodyfikować mój program. Tak żeby drugi Timer generował tylko tyle impulsów po uruchomieniu ile wynosi mnożnik. A w tym pierwszym Timerze który mierzy okres ma być inicjalizacja tego drugiego Timera i uruchamianie go. Dzięki temu częstotliwość tego drugiego będzie...
dobrze, a nie lepiej w przerwaniu napisać warunek, że jeśli zmienna bitowa równa się jeden to robi to a jeśli nie to tamto końćząc podprogram1 zrobisz SET tej zmiennej a kończąc podprogram2 RESET :D
michalc85 ma rację. W słoiku z wodą ? Żeby namokły ? Według mnie, wygląda to na zwykłe nabijanie postów (i punktów), ponieważ Twoja wypowiedź nie wnosi niczego do dyskusji. Nieprawda, woda ma dużo większą przewodność termiczną niż powietrze. Wtedy temperatura obu czujników jest prawie równa. Zwróć uwagę że "po zabezpieczeniu". Możesz też oba czujniki...
No w twoim wypadku AVCC to 5V, czyli 1023 (maksymalna wartość z ADC) to 5V. Stąd równanie x=y*1023/5V; gdzie x to wartość z ADC a y to napięcie w voltach. Np dla y=1V mamy x=1V*1023/5V=ok.207 Jak masz inne napięcie AVCC to zmieniasz 5V na wartość tego napięcia, a jak masz inną rozdzielczość ADC to zmieniasz 1023 na np. 255 (dla 8 bitów) czy 65535 (dla...
Najprościej zrobić to w pętli zwiększajacej adres komórki do odczytania, ilość obiegów równa z ilością bajtów do odczytania.
............... przy prescale = 1 częstotliwość PWM równa się częstotliwości krwarcu czyli 16MHz (trochę za dużo :)). .......... Co takiego? Timer5 skonfigurowany u ciebie do pracy w trybie1 generuje falę o częstotliwości 31 kHz (dokładniej 31250Hz), zgodnie z wzorem : http://obrazki.elektroda.pl/9569063700_1... gdzie TOP = "fixed value...
Dokładnie. Jak ja robiłem płytki to zawsze te, które nie przeszły testu optycznego były przez firmę oznaczane pisakiem, a ilość dobrych zawsze była równa lub nawet większa od zamawianej.
Wskazanie na wyświetlaczu ma być od 0 do 3 np. 0.50 . Równanie mam ale jak to napisać w Bascom żeby zrozumiał ?? . Nie znam zbyt dobrze tego języka więc proszę o pomoc .
A zdałoby egzamin np. żeby samo dodawało zero jeżeli liczba będzie mniejsza lub równa 9? Rozumiesz o co mi chodzi?
Porady fajne, kątomierze na zawiasach, trygonometria a kto przejrzał notę accelerometeru? Pewnie nikt, to by takich odpowiedzi nie było. W nocie nawet są obrazki. Zależnie od tego, jakie położenie jest uznane za zerowe i jaka oś przyjmiemy 0stopni to 0..1G. Przyjmijmy 0G. 90stopni to 1G (lub-1G), 45stopni 0,5G (lub -0,5G). Zwykłe równanie rozwiązuje...
najprościej chyba pierwszym sposobem mirleya, dodatkowa zmienna pozwala ograniczyć tylko o jedno równanie...
Chodzi Tobie tylko o szybsze, czy o to, że ma zliczać impulsy tylko wtedy jeśli ich częstotliwość jest równa 100 Hz?
Można to zoptymalizować i nie przeliczać na Volty w ogóle, ale tak bedzie prościej zobrazować. Jeśli napięciem odniesienia jest AVCC to znaczy że 5V trzeba teoretycznie podzielić przez rozdzielczośc 1024 i wyjdzie 0.00488 no i to się często zaokrągla do 0.0049 Teraz żeby odczytać napięcie wystarczy pomnożyć odczytany wynik przez te 0.0049, ale to wymusza...
Czy muzykę na kartę wgrywasz jako fat16/32 czy po prostu po kolei sektorami :?: Jeśli to fat16 lub 32 bo w strukturze każdego pliku w RootDirectry możesz odczytać jego rozmiar :) Ale nie tak się sprawdza czy plik się skończył (mówię o fat) :) Aby wiedzieć że plik się kończy tzn pozostał jego ostatni klaster (najczęściej 8sektorów czasem więcej) to w...
Mam rozumieć, że częstotliwość sygnału jest stała i równa 306Hz? Bo w takim przypadku nie widzę sensu stosowania dzielnika.
także chciałbym zapytać jak mogę indywidualnie nastawiać każdy PIN potru z osobna? Np. PORTC |=0x08 PORTB |= (1<<PB6) Poczytaj o operatorach bitowych - http://mikrokontrolery.blogspot.com/2011... Else dotyczy poprzedzającego go ifa. http://mikrokontrolery.blogspot.com/2011...
To wiele wyjaśnia. Spróbuj tak ;) [syntax=vbnet]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 16 $framesize = 64 $baud = 9600 Config Lcd = 16x2 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.6 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5 Cursor Off : Cls Dim K1 As Byte Dim K2 As String * 20 Dim Id As String *...
Jest to kod z Pana Wiązani być może nieudolnie przerobiony. Oryginał ma tak: Dim licz_8ms As Byte Incr Licz_8ms If Licz_8ms = 125 Then ............. I to działa, czyli ja nie mogę używać liczby stałoprzecinkowej . No dokładnie. To działa tylko dla Byte (i podobnych). Chociaż typ danych Single mówi, iz może przyjmować wartości stało i zmiennoprzcinkowe....
Tak sobie przypomniałem trochę i stan rejestru nie powinien być pobierany. Tylko od razu zapis bo SBR robi And że zmienna. Nie sprawdzałem co bascom tłumaczy pod komenda set Ale po mojemu to... Set trrc1b.7 Równa się asm SBR tccr1b , 0b10000000
Witam , każdą całkę można również obliczy korzystając z interpretacji geometrycznej całki, trzeba założyc sobie elementarny krok "delta (X) " (im mniejszy tym dokładnośc liczenia większa) i wartośc całki w danym przedziale jest równa sumie iloczynów f(x) razy delta (X).
Kolego, warto czytać te Helpy. Samo się nie nauczy ;) Tutaj wystarczyłoby trochę sprytu. Bascom ma wbudowany system podpowiedzi konfiguracji. Po prostu jak nie wiesz co wpisać to dajesz "równa się" i spację po czym wciskasz CTRL+SPACE i dowiedziałbyś się że ma być X (iks) zamiast * (gwiazdki) i już się kompiluje i nie tracisz czas na forach :P https://obrazki.elektroda.pl/8315978000_...
Dzięki. Mam kolejny problem. Spotkałeś się może z tym, że wyświetla w bascomie błąd w konkretnej linii, a jak się tam przechodzi to linia jest pusta? "Source variable does not match the target variable" i rzeczywiście, mam takie wstawki w których zmienna word ma się równać zmiennym byte + byte, ale to wszystko liczby, można tak robić. edit: okazało...
Jeśli chcesz to zrobić w ten sposób, to zrób to tak: Locate 2 , 1 If L = 0 Then Lcd "0---------------" If L = 16 Then Lcd "-0--------------" Itd... Dodano po 5 Poza tym musisz ruszyć Timer gdy wartość będzie wynosiła 0. Wtedy gdy głośność będzie równa 0 timer odliczy czas i wyłączy wyświetlacz.
Witam Po wykryciu On z RC5 wpisz do jakiejś zmiennej "1", potem po potwierdzeniu przyciskiem wpisz do niej np. "3". Teraz w pętli głównej możesz dać warunek, jeśli zmienna jest równa 3 to wykonuje oraz wpisuje do zmiennej znów "0"... Pozdrawiam
Tylko ze ja nie chce zmieniać amplitudy. Może ten rysunek, który umieściłem nie za bardzo wyjaśnia co chcę zrobić. To nie ma być zmiana amplitudy od max wartości do zera, to mniej więcej ma obrazować jak chce zmieniać częstotliwość. To częstotliwość ma się zmieniać od zadanej wartości do zera z takimi wahaniami. Każde następne narastanie częstotliwości...
Troszkę zmieniłem, sprawdź czy działa. Troszkę nie rozumiesz co piszesz dlatego oporni Ci to idzie najpierw zwiększa liczbę a potem sam ją zerujesz, więc siłą rzeczy zawsze będzie równa zero. Druga rzecz to zwiększasz "liczbę" tylko od jakiej wartości zaczynasz? Najlepiej zaczynać od zera. itd [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 4000000...
Stosuj zasadę 2 jednostki = 1 stopień, tak jak ma to miejsce w np. DS1820. Temeratura dzielona przez 2 daje rzeczywistą wartość, a reszta równa jeden oznacza wtedy połówkę. Dzięki temu wszystko zapisuje się na liczbach całkowitych, co oszczędza pamięć.
Wystarczy jedno wejście I NTx , które będzie wykrywało ten impuls. Ale jeśli to będzie impuls "z ręki" jakiś klawisz to bez sensu - ze względu na drgania styków a potrzebny minimalny czas np 1ms. Jeśli to będzie impuls z jakiegoś wyjścia cyfrowego to ok. Założenia: - wykorzystamy tylko jedno wejście INTx - wykorzystamy tylko jeden Timer sprzętowy Przygotować...
Witam ! Mam taki problem, nie potrafie zapisac zmiennej z Bascoma do R17 uzywajac rozkazu Asm, dokladniej chodzi oto: Taki kod dziala: Const A=10 Ldi R17 , A A ten juz nie: Dim A as byte A=10 Ldi R17 , {A} wszystko sie kompiluje ale w drugim przypadku wartosc A nie jest po przepisaniu równa 10 tylko 100 bede wdzieczny za pomoc Pozdrawiam !...
Witam. Czy jest w Bascomie jakaś procedura która bezpośrednio sprawdza, czy liczba przechowywana w zmiennej single jest całkowita (naturalna)? Ewentualnie jak przy użyciu jak najmniejszej liczby kroków pośrednich sprawdzić czy wartość po kropce dziesiętnej ma wartość 0? Chcę użyć tego jako warunku i gdy single zawiera część ułamkową wyświetlić z maską...
Wiec, mam po prostu dodac wszystkie te osiem bajtow i ta sume zanegowac i wyslac to jako 9 bajt. i w odbiorniku to samo i porownac z tym 9 odebranym? Przy takim obliczaniu sumy kontrolnej, wystarczy w odbiorniku dodać 9 bajtów - jak wyjdzie 0FFh to ok . Jeżeli przy nadawaniu odejmiesz od bajtu sumy kontrolnej 1 - to w odbiorniku tylko sprawdzisz czy...
A ja mam dziwne wrażenie że jednak nie pracujesz na 20MHz. Z tego co wiem to Atmega po przekroczeniu pewnego progu sama się przełącza na wewnętrzny oscylator 8MHz. Dla sprawdzenia wstaw w kod opóźnienie np. wait 1 między przed wczytaniem kolejnego obrazka. Jeśli jedna sekunda nie będzie się równać jednej sekundzie to będziesz wiedział że wszystko chodzi...
Miałem w zbiorach ten kalkulator ale zapomniałem o nim. Chyba już obczaiłem skąd mam 181 a nie 363 według niego ułożyłem sobie wzór (przerwanie wywołane co:) (pomnożyć przez) (oczekiwana częstotliwość w Hz) (równa się) (Wartość Pwm1) w moim przypadku 0,008192s*22000Hz=(Pwm1=180) To co w związku z tym oblicza ten kalkulator ze strony wkrętak.pl ??
Zasiedziałem się trochę i porobiły się błędy. Zmieniłem co trzeba, fragment kodu wygląda mniej więcej tak: D1 Alias Portb.1 ... Dim A As Byte ... Do ... Elseif Pind.1 = 0 Then Toggle D1 A = A + 50 Waitms A Elseif Pind.1 = 1 Then Ml1 = 0 Mr1 = 0 Ml2 = 0 Mr2 = 0 D1 = 0 ' Wykluczenie możliwość wystąpienia stanu 1 po Toggle End If Loop ... End *W miejscach...
jak dobrze zrozumialem to, kod by wygladal tak: dim x as string*3 dim x1 as string*1 dim x2 as string*1 dim x3 as string*1 do x1="1" x2="2" x3="3" x=x1 x=x+x2 x=x+x3 'teraz zmiena string x powinna rownac sie x="123" lu"321" to sobie tam sprawdz ale chyba 123 loop end
W zmiennej zliczać liczbe naciśnieć i dołożyć rozbudowany warunek jeśli liczba równa się czemuś to taka kombinacja jeśli czemuś innemu to taka, etc. PS nie zapomnij o debouncingu.
Ładna edycja posta. Wyglądasz przez to na mądrzejszego. :P Ale teraz to ja zgłupiałem. 1 mi nie wyjdzie... Dodano po 3 Za 100% uznaję właśnie Vref - 1LSB.
A co te obliczenia robią? Bo wygląda to na mało sensowny zlepek śmieci, a ja się domyślać nie zamierzam. Skoro z ADC odczytujesz zmienną typu word to na takiej zmiennej działaj, ewentualnie rozszerz sobie do long (tylko jeśli naprawde jest taka konieczność) Napisz najpierw zwykłe równanie matematyczne na kartce, a potem je przepisz na wersje programową....
Możliwe, że dla wartości 0 suma kontrolna będzie niepoprawna, nie wiem. Ale po co sobie utrudniać, dajcie warunek w nadajniku że jeśli temperatura jest równa 0 stopni to wyślijcie np 456 stopni albo jakąś inną wartość. I w odbiorniku drugi warunek, że jeśli temperatura 456 stopni to znaczy że 0. Wszystko będzie załatwione :)
Są dwie metody tworzenia urządzenia. Jezeli to jest tak prosty schemat jak Twój , zaprojektuj płytkę na gotowo z wszystkimi mozliwymi dodatkami a program będziesz zapisywał sukcesywnie w miarę jak będziesz ulepszał kod programu . Taki układ testowy na gotowo. Druga metoda polega na budowie urządzenia testowego na jakiejś płycie testowej na której mozesz...
Witam Mam napisany program, wszystko śmiga tak jak powinno poza jednym. Jak to przeważnie bywa. Oto kawałek programu, gdzie jak sprawdzałem na symulatorze pojawia się właśnie dziwny wynik. Dim Zm1(8) As Byte Dim Zx(3) As Word Zm1(1) = Zx(1) - 100 Zm1(2) = Zx(2) - 100 Zm1(3) = Zx(3) - 100...
Rozumiem. 1.Konieczna równa prędkość oscylatorów. Chciał bym teraz odebrać coś więcej niż: Print "1" Np: Print "ciekaweczydziala" I po odebraniu, wpisaniu warunku: If Chr(uart) = "ciekaweczydziala" Then .... ..... endif Żeby działało.
Nie widzę byś gdziekolwiek w kodzie , przypisywał jakąś wartość tej zmiennej.A skoro tak to wygląda jak wygląda , to ta zmienna jest równa zero. Zapewne tak powinno to wyglądać Set Portb.5 Wartosc = Getadc(4) Wartosc = Wartosc / 5 Wartosca = Wartosc If Wartosca > Ocr2 Then '... Piotrek
Obsługa LCD trwa długo , w tym czasie prawdopodobnie często Bascom blokuje przerwania . i dlatego są błedy. I jeszcze jedno - liczysz przerwania co 2ms a ile trwa proces wyświetlania na LCD? Możliwe że czasem nie zliczysz wszystkiego w ten sposób co piszesz. Spróbuj albo wywalić obsługę LCD i zrób wyświetlanie np na diodzie (jak jest równa iluś tam...
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 =...
witam serdecznie Może nie jestem aż taki raczkujący w bascomie ale potrzebuje pomocy If T(1) >= Czujnik(1) or T(2) >= Czujnik(2) Then ten kod przedstawia sprawę tak Jeżeli Temperatura w T1 jest wyższa lub równa Cujnik1 (Czujnik(1) = T_solar + T_H_up) i Temperatura T2 jest wyższa lub równa od Czujnik 2 (Czujnik(2)...
Nie piszcie programów bez porannej kawy :D Życze powodzenia w odczytywaniu stanu wejść z rejestru PORTx Jak chcecie odczytac co jest na porcie to pracuje sie z rejestrem PINx Może dziwnie to wygląda ale zmienna powinna sie równać PINA :D Mikroprzykład PINx do zmiennej i Andujemy maską a potem maska jeszcze pozwala wychwycic zmiany w porcie :D
Twierdzenia Pitagorasa - suma kwadratów przyprostokątnej jest równa kwadratowi przeciwprostokatnej, która jest zawsze stała i sobie tak biega dookoła... Podziel sobie całość na odcinki, w których albo x, albo y są gęściejsze - bliżej do pionu - używasz zagęszczenia y, do poziomu - x. Ilość iteracji pętli to właśnie to zagęszczenie. Łapiesz ? ;) I najlepiej...
U mnie zielony i niebieski działa prawidłowo przy napięciu 3.3-3.5 V (oczywiście dodatkowy rezystor był). Co do czerwonego - działa jedynie gdy napięcie zasilania było pomiędzy 2.1-2.7V, jeśli będzie wyższe nie zapali się to podświetlenie czerwone!!! Podświetlenie zielone i niebieskie u mnie pobierały po 30-35mA, a czerwone 20-25mA. Taki prąd musi płynąć,...
Sterowanie SPI prowadzić w CPOL Mode = 0, CPHA = 0, w której wysyłane są 16 bity z .mu.C do modułu: Pierwszy bit informuje moduł, jeżeli jest to (poprzez odczyt (wartość bitu 0) lub zapisać wartość bitu równa 1 ), pozostałe siedem bitów pierwszego bajtu wskazuje adres rejestru. Z drugim osiem bitów polecenia mają być przekazywane do otrzymania moduł...
Przede wszystkim zrób tak: Volt = Getadc(1) Cols = Volt / 64 Potem wyświetl sobie maksymalne napięcie jakie dostajesz z LM na ADC, czyli: Locate 1 , 1 Lcd Volt Max ADC to 1024. Jeśli chcesz by wskaźnik był w pozycji max przy wartości ADC 1024 to musisz podzielić Volt przez 64. To proste: MAX ADC = 1024 MAX pozycja na wyświetlaczu = 16 Czyli...
"zajęte" timery. zawsze możesz dopisać tak jak pisałem z dźwiękiem. w przerwaniu timera pomniejszasz zmienną o 1 oraz gdy jest równa 0 wyłączasz podświetlanie. w obsłudze klawiatury dodajesz zapalenie podświetlenia (pewnie ustawienie jakiejś nużki w odpowiedni stan) oraz ustawienie tej zmiennej na odpowiednią wartość (trzeba wyliczyć z prędkości z jaką...
Napisałbym to pewnie inaczej, ale tutaj masz "tłumaczenie na Bascom" tego co zapisane było w C. W Bascom każda zmienna jest inicjowana na początku wartością 0 W C inicjujesz zmienną i nadajesz, albo nie, jej wartość i to jest to : static uint8_t i=0; Po prostu I As Byte i I = 0 I jest indeksem dla numeru bajtu w buforze. Wykrzyknik w C to zaprzeczenie....
Ale, ale... chcąc zrobić dla zmiennych np Word takie równanie: Dim A as Word Dim B as Word Dim C as word A=5 B=3 C=A/B Lcd: C to zwraca mi "czystą" jedynkę zamiast 1,6666666666666666. Uwaga ta się tyczy tego zapisu: X = 1/X. Chyba, ze ja coś motam. Ale ok, sprawdzę w domu wasze sugestie(zamiana config portx.y na pinx.y, podłączenie fototranzystora...
Tak. Tzn długość polecenia formatującego (spacje + zera + kropki) powinna być co najmniej równa maksymalnej długości podawanego ciągu do sformatowania. Czyli dla temperatur do -99°*C z jednym miejscem po przecinku trzeba " 0.0" (dwie spacje i 0.0). Druga spacja dba o to żeby tekst się nie wydłużał jak temperatura będzie miała cyfrę na miejscach dziesiętnych,...
Mam problem z prawidłowymi deklaracjami stosów pamięci. Żeby obliczyć zapotrzebowanie próbowałem zastosować rozwiązanie z $HWCHECK opisane w helpie, ale niestety nie działa prawidłowa na M2561 - zmienna _hw_lowest jest stale równa zero... Być może pomogła by obserwacja zawartości RAM podczas pracy programu co jakiś czas. Chyba najlepiej byłoby użyć...
Hej, pisanie w C nie wypaliło to przeszedłem do Bascoma. Prosiłbym o sprawdzenie kodu, wytknięcie błędów. Mam wątpliwości co do And w funkcji Select case (nie wiem czy to jest poprawnie) oraz co do logiki kodu... [syntax=basic4gl] $regfile = "m8def.dat" $crystal = "8000000" Config Pinc.0 = Input 'Przycisk Set Pinc.0 Switch Alias Pinc.0 Config Pinc.2...
więc tak: jeśli czytałeś helpa do bascoma to wiesz, że I2CDelay służy do ustawienia szybkości magistrali I2C. i tak dla i2cdelay=0 szybkość ta wynosi ok 400KHz dla i2cdelay=5(domyślne ustawienie) jest ona równa 200KHz a dla =10 wartość ta to 100KHz itd. teraz to co się tyczy AT24c02 i innych: wedłóg noty katalogowej AT które mają w dolnym prawym rogu...
Witam, Mam mały problem z napisaniem kodu tak aby ten program uruchamiał się za pomocą przycisku [syntax=basic4gl]Config Pinb.1 = Output 'linia pb1 jako wyjście Config Timer0 = Timer , Prescale = 256 'deklaracja timera jako czasomierza On Timer0 Przerwanie_co_2ms 'deklaracja jaka etykieta obsługuje Led Alias Portb.1 'alias dla wyjścia b.1 Dim Licznik...
Może cały problem w tym, że programuje tylko w Bascomie, bardzo mało jest konkretnych podpowiedzi w necie w tym języku. Język to jedno, algorytm do druga sprawa. Jeśli używa się zabawkowego Bascom, nie ma co liczyć na dużą bazę przykładów. Bascom ogranicza się do 8051 i AVR. Basic pomiędzy soba są praktycznie niekompatybilne. W przypadku Pascala jest...
Niestety nie wiem. Jakiego polecenia używasz do kasowania linii ? Co do mojego problemu, to poszedłem trochę na łatwiznę - dodałem trzy linijki kodu i teraz zapisuje w plikach dziennych, czyli każdy dzień to nowy plik. Przy starcie przy starcie sprawdza czy flaga_odczyt = 1 ( a jest równa 1, bo zapisana w warunkach początkowych ) wykonuje odczyt, ustawia...
Troszke to napisałes nie tak jak powinno byc, sprawdzasz czy temp wody jest równa 40*C ale jesli bedzie np 50 to bedzie nadal grzało bo nie spełnia warunku, sprawdzaj czy woda jest juz cieplejsza czyli if temp > 40 then wylacz grzałke, dodatkowo dodaj histereze np 2*C. waitms 700 - bedzie to działało w bascomie ?(nie pamietam juz) chyba dziala tylko...
Wydaje mi się, że najpierw powinno być „uruchomione” odliczanie tych 0,1 sek, wyzwalane pierwszym pikiem z „paczki”. Potem trzeba odczekać te 0,1 sekundy na zanik „szumów” i zacząć zliczanie w czasie 0,9 sek. Ilość zliczonych pików podzielona przez czas da mi częstotliwość. Wynik ma się utrzymywać na wyświetlaczu...
Witam Nie wiesza się, tylko wykonuje nadzwyczaj sumiennie to co napisałeś w programie: Paletyzacja: Dlugi_tekst_2 = " By powrocic do menu glownego wcisnij < " Do ... Loop To jest pętla BEZ KOŃCA. ... Do Reset Watchdog Dlugi_tekst = " Symulacja nakladania uszczelnienia" Dioda_a = 1 Czas_odcinka = 142000 / Predkosc_spawania...
Ja korzystam najczęściej z dwóch sposobów. Funkcją input oraz urxc. Przykłady: $regfile = "m8def.dat" $crystal = 16000000 $baud = 19200 Dim Rs As String * 10 Do Input Rs If Rs = "XXXXXXXXXX" Then End If Loop $regfile = "m8def.dat" $crystal = 16000000 $baud = 19200 Dim Znaki As String * 10 Dim Ascii As Byte Dim Odebrane...
1) To jest twoj problem Czas = T1 T2 = T1 * 16 If Czas = T2 Then I jak ty chcesz tym uzyskać odpowiedź że odebrany bit był dobry? To równanie przecież nigdy nie będzie spełnione. Już ci pisałem, jeśli wiesz że szpilka będzie miała długość "Czas=400" to zrób porównanie ale z przedziałem np 395<x<405 - pojawia się przerwanie RISING - wystartuj timer0...
Dokładnie tak Panie frohme. Aby wynik odliczenia zmiennej równał się 10000 na lcd muszę czekać około 5 sekund.Program w obu przypadkach jest taki sam czyli (nie będę tu przytaczał programu sterującego lcd i led) do incr A wyświetl informację na lcd lub wyświetlaczach led loop Tak sobie myśle iż jeżeli zmienna A jest tak wolno dodawana i wyświetlana...
IMHO pomysł zamkniętego forum nie jest dobry z powodów o których pisze (at)michalko12 . Jak popatrzeć na liczbe tematów zakładanych przez "wyjadaczy" to będzie ona chyba równa zero... Z drugiej strony (at)dondu ma rację z niewydzielaniem forum Arduino i IoT. Mnie też niektóre posty z forum Arduino drażnią, ale co robić. IMHO jak będzie personalizacja...
AVE... DS18B20 posiada dwa rejestry: Th(bajt 2) i Tl(bajt 3). Jeśli temperatura jest niższa lub równa Tl albo wyższa lub równa Th, to układ ustawia flagę alarmu. Komendą Alarm Search[ECh] można sprawdzić, czy flaga jest. Bascom, PICBasic oraz różne dialekty C dla mikrokontrolerów posiadają gotowe biblioteki i komendy obsługi 1-Wire... Dzięki tym rejestrom...
Mam problem z którym próbuje uporać się już od dłuższego czasu. Nie wiem jaką wartość powinienem wpisać do timera dwu bajtowego aby uzyskać przerwanie co sekundę. Nie pytałbym się tu o takie rzeczy ale nawet w książce "Mikrokontrolery dla początkujących" autor oblicza wartość timera pisząc sprzeczne równanie! Od razu mówię że programuje w BASCOMIE jeśli...
Próbowałeś zmienić tą częstotliwość transmisji na I2C ? Teraz jest ona równa. 8 000 000 / (16+(2*0)*4^1) = 500 kHz A ma być nie więcej jak 100kHz. Uc 5x szybciej wymaga danych niż w stanie jest podać PC :!: Zmień to koniecznie. W TWBR ma być wartość (według wzoru z noty). 8 000 000 / 16 + 8x = 100 000 16 00 000 + 800 000x = 8 000 000 x = 8 x = TWBR...
Witam! Postanowiłem zacząć się uczyć programować mikroprocesory, jak że uczę się jak mechatronik taka zdolność mi się przyda, ale mam jako początkujący kilka pytań. A więc tak, na początek muszę sobie zrobić programator http://mirley.firlej.org/programator_na_... , jak wiadomo i tak muszę zaprogramować ten mikroprocesor, mam zamiar to zrealizować...
Najważniejsze to chociaż troszkę samemu najpierw pokombinować i ew później dopytać co i jak ;) ale po co ten Inkey? toż jak już zajdzie zdarzenie Bytematch - to znaczy, że w twoim buforze jest już co najmniej jedeń łańcuch tekstowy, którzy przyleciał z Rs232 i zakończony znakiem ENTER (13) .... w związku z tym wystarczy dać polecenie Input linia i już...
Jeśli wybierasz BIT w celu pozornej oszczędności to kompilator wszystkie flagi bitowe wsadzi do jednego Bajtu. Nie ma innej możliwości. Bajt składa się z ośmiu Bitów . Ale do rzeczy. Najprościej to wytłumaczyć następująco. Na przykładzie flagi Z . http://obrazki.elektroda.pl/4444213200_1... Flaga ta wskazuje zerowy wynik działania arytmetycznego...
Nie zmienia, bo masz błąd w innym miejscu. Dokładnie to miałem na myśli-że błąd jest gdzieś indziej. Zastanów się, co oznacza nazwa trybu CTC (?) – w ang. jest to ‘Clear Timer on Compare’ (pol. - wyzeruj zawartość licznika/timera, gdy jego zawartość jest równa wyznaczonej z góry i ustalonej, bądź to wyliczonej jakiejś wartości w zmiennej...
Próbuje napisać program do licznika monet w Bascom AVR. Fragment z którym mam kłopoty. Od trzech dni dopiero poznaje program i nie wiem co dalej. Początek mam już napisany do wyboru nominału z pomocą kolegi sp3ots. Duże dzięki. [syntax=vbnet]$sim $regfile = "attiny2313.dat" Config Lcdpin = Pin , Db7 = Pb.2 , Db6 = Pb.3 , Db5 = Pb.4 , Db4 = Pb.5 , E...
czy to będzie led czy silnik to czas nie może się zmienić. Tak naprawde nie da sie na 100% idealnie sterować wiecej jak jednym urzadzeniem, można jedynie przy wielokrotnościach czasu i kiedy czasy te nie pokrywają sie. W każdym innym przypadku będą wachania zależne od częstotliości przełaczania oraz ilości przełaczanych LED. No i im szybszy będzie...
Żeby nie zapomnieć na końcu to już tutaj napiszę, że liczy się to w programach bo one się rzadziej mylą, ale zrozumienie tematu jest oczywiście ważne. Jest kilka, a w pełni darmowych, kalkulatorów do tego. Timer jest urządzeniem sprzętowym wbudowanym w mikrokontroler. Najczęsciej taktowany jest w taki sposób, że sygnał zegarowy taktujący mikrokontroler...
Chcę osiągnąć następujący efekt: Input Zmienna1 Input Zmienna2 // i teraz chciałbym żeby zawartość Zmienna1 potraktowana była jako port. // zawartość (zmienna a nie stała a więc nie chodzi tu o alias) Nie sądzę, by zawartość zmiennej, nawet jeśli będzie to "portb.1" zinterpretowana została rzeczywiście jako portb.1 Innymi słowy nawet jeśli zawartość...
Poprawiłem programik, zwiększyłem wielkości stosu, stosu programowego i ramki, tablice Src_array i Dest_array wypełniłem danymi. Błąd dalej występuje. http://obrazki.elektroda.pl/6483380100_1... Jak widać zmienna B została uszkodzona, a zmienna "C" w której powinna być zwrócona wartość prze Memcopy jest równa 0. [syntax=basic4gl]' BASCOM-AVR...
Witam, a jak wygląda sprawa w sterowaniu przetwornicą typu flyback lub przerywaczami? Czy używając programowego PWM na Atmedze moża zorobic taką przetwornice? Dodano po 3 Czy dobrze mi się wydaje że np. gdyby uzyskać na atemedze częstotliwośc PWM dla flybacka równą 1k Hz to układ działał by poprawnie tylko że transformator gromadzący energie w polu...
Dzięki za podpowiedź. Oto już mój finał i poprawiony kod. $sim $crystal = 4000000 'Deklaracja częstotliwości kwarcu $regfile "attiny2313.dat" 'deklaracja modelu procesora Config Lcd = 16 * 2 Declare Sub Zwieksz 'Deklaracja procedury zwiększającej stan Declare Sub Zmniejsz 'Deklaracja procedury zmniejszającej stan Dim Wartprocentowa As Single...
zestaw avr 2313 ma w sobie kwarc 4Mhz a kompilator BASCOM miał to ustawione w opcjach. i rzeczywiście wyjdzie z tego zdaje się 500 kHz poza tym coś czytałem, że przerwania z takim małym dzielnikiem nie są bezpieczne.. Alę proszę o pomoc z tą nierówną sekundą. udało się.. zmodyfikowałem program $regfile = "2313def.dat" Config Portb.0 = Output...
Procesor nie wstaje po uśpieniu przy Twoim kodzie. Z obsługą uśpienia pomagałeś mi Ty, i wygląda tak: [syntax=vbnet]Pw_off: Do If Switch = 0 Then 'jesli wcisnieto przycisk If Lock = 0 Then 'a zmienna już wyzerowana Lock = 500 'wylaczy po 500ms od puszczenia przycisku Turn_off = 1 'ustaw flage by po puszczeniu przycisku zadziałało End If Else If Lock...
Myślę że każdy potencjometr powinien być stereo. Jeden kanał powinien działać z urządzeniem audio a drugi powinien dostarczać informacji do ADC , Uc o pozycji potencjometru. Dane do PC mógł byś przesyłać za pomocą RS232 lub innego. To w programie Uc musisz uwzględnić kiedy i w jaki sposób dane będą przesyłane do PC. No i musisz mieć program który będzie...
Witam. Mam następujący problem, który wyskoczył mi podczas zabawy z bascomem. Zadałem sobie pewne zadanie (związane z robotem-samochodzikiem na którego przodzie umieszczona jest krańcówka dająca stan 1 na jeden z portów) którego opis jest następujący: Ustawiamy robota w punkcie A. Pojazd dostaje komendę "start" i włącza się licznik zliczający czas....
No więc zacznijmy. W Twoim programie zmienna typu Single ma wartość początkową zero . Niezależnie od tego czy naciśnięty jest jakiś przycisk to zmienna ta dzielona jest przez 16. Tak więc nawet gdyby przyciskiem została zwiększona o jeden to i tak zostanie podzielona przez 16. Czyli cały czas będzie mniejsza od jeden. Będzie to 0.xxx coś tam Takie 0.1...
To chyba po to była ta duża zmienna żeby można było na niej działać.. Nie zagłębiałem się w temat i nie wiem jaka jest wartość początkowa ale załóżmy te poprzednią. [syntax=vbnet] Wartosc = 4401250 'powinna miec jakas wartosć poczatkowa Fdown: Czesrx2 = Czesrx2 - 1 If Czesrx2 < 80 Then Czesrx2 = 80 Else 'jesli Czesrx2 jest jeszcze większa lub równa...
Witam. Uruchomiona komunikacja po UART - komputer PC - urządzenie na Atmega32. Z poziomu klawiatury PC wysyłam znaki. Po odebraniu przez urządzenie kodu klawisza enter urządzenie wykonuje polecenie (złożone z uprzednio wysłanych znaków). W celu wygodnego debugowania softu (bez tworzenia celowych pułapek, ponownej kompilacji kodu i programowania uP)...
Witam! Po próbach wyszukania włąściwej odpowiedzi postanowiłem zapytać kolegów o następujący problem - muszę dosyć precyzyjnie wygenerować przerwanie w Bascomie , używam do tego timer0 i odpowiedniego przerwania on timer0. Dziwny dla mnie jest fakt że programik : on timer0 etykietaprzerwania .... etykietaprzerwania: portb7 = not portb.7 timer0 = 200...
Witam :) Dzięki za kolejne koncepcje. Ale nie uśmiecha mi się dokładać kolejne kostki liczników, tym bardziej jak ma ich być "bateria". Zależy mi raczej na małych gabarytach układu. Liczniki też wolał bym zarezerwować dla innych celów - choć by odliczania czasu całej sekwencji i PWM,u Jak pisałem powyżej komenda Waitms wystarcza tu w zupełności gdyż...
Reg_no(i) = 1wsearchfirst() For I = 1 To 8 Writeeeprom Reg_no(i) , 10 Next tego całkowicie nierozumiem, najpierw zapisujesz dane do tablicy pod indexem którego nawet nieznasz (zmienna 'i' niejest zainicjalizowana) oraz nierozumiem zapisu 8 bajtów, wszystkie pod ten sam adres w pamięci eeprom, pierwsze 7 bajtów zostanie nadpisane i ich nieodzyskasz....
Pisząc program w Bascom-AVR IDE $regfile = "m8def.dat" 'typ procesora $crystal = 1000000 'zegar [Hz] Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portd.3 , Rs = Portd.1 Config Lcd = 16 * 2 Const Kranc_g = &H80 Const Kranc_d = &H40 Const P2 = &H04 Const P3 = &H08 Dim Kranc As Byte , S1 As...
równać kwadratowy równać wyjście równać różnicowy
przeskok iskra trafo wymienniki pompa ciepła wymiana toner
fabia czujnik biegu zdalne sterowanie silniczkami
Navigon 310 Canada - Gdzie znaleźć instrukcję? Kod błędu A5A00009 w Nissan X-Trail - diagnostyka i rozwiązania