Widzę że muszę trochę sprostować. 1. Nawet kosmicznie często wywoływane przerwanie zdąży się wykonać choć by nie wiem jak długo ono trwało, bo przerwania po wejściu w obsługę jakiegoś przerwania są blokowane i odblokowywane są dopiero po zakończeniu się obsługi tego przerwania. Więc twierdzenie że przerwanie nie zdąży się wykonać w ciągu 128us bo samo...
Chwile mnie nie było :D Napisałbym to inaczej, ale wracając do pytania z pierwszego postu . Jeśli chcesz by procesor zawsze był tak samo zajęty to każ mu w tych innych Case`ach także nadawać Pulseout tylko na pin Reset. Bascom to przełknie bo ten pin może pracować jako normalny I/O ale jak jest resetem to nic mu się nie stanie jak napiszesz Pulseout...
To nie jest takie proste jak by się wydawało. Ten sam program można napisać na 100 różnych sposobów. Nie da się tego przełożyć 1 na 1 W C musisz posiadać lub napisać bibliotekę do obsługi LCD a w Bascomie masz ją już napisaną przez kogoś innego i zaimplementowaną wewnątrz jako komendy. To tak samo jak nie da się przełożyć angielskiego bezpośrednio na...
Twój LM75 jest na I2C, zakładam więc że umiesz odczytać z niego te dwa bajty z wartością temperatury. Sprawdzasz najstarszy bit, starszego bajtu w odczytanym z czujnika wyniku. jeśli jest równy 0, to znaczy że temperatura jest dodatnia i wynik liczysz poprzez: 1. przesunięcie otrzymanego z czujnika wyniku o 5 bitów w prawo 2. pomnożenie rezultatu tej...
Witam Jak wielu spotkałem się z problemem problemem kłopotliwej obsługi pilota z RC5. Po poszperaniu w necie wpadłem na http://www.elektroda.pl/rtvforum/topic20... ten temat. Jak się okazało wszystko na tym programie pracowało, ale nie zawsze. Kłopotem było napisanie programu "pod pilota". Oczywiście pochwała dla Sabotaz'a który problem "ruszył"...
Ale ten sposób wysyłania ramek to trochę nie teges. A jak poprawnie się wysyła takie ramki i czym? Nie możesz po prostu sprawdzić w opisie programu jak należy formatować dane? Bo domyślam się że to jakiś terminal jest. Na Wikipedi jest opisane tak: "Minicom to program do kontroli modemu oraz emulator terminala dla systemów uniksowych" Ciężko Ci pomóc...
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...
Można zadeklarować prawidłowo zmienną eeram W ten sposób Dim Adres_er(size_t_mac) As Eram Byte At Adres_p_mac Poprzez komende AT znam adres, po jaki będzie się odwoływać zmienna eeram w pamięci. Niestety, ale z Eepromem ten numer nie przejdzie , ponieważ Bascom ignoruje etykiety w Eepromie. Deklaruje, jakie wartości powinny być zapisane w eeram...
http://obrazki.elektroda.pl/3089511800_1... Witam, dziś prezentuje swój bezprzewodowy termometr pracujący na częstotliwości 433 MHz. Urządzenie składa się z nadajnika i odbiornika. Nadajnik odczytuje temperaturę pieca C.O. i wysyła ją do odbiornika. W odbiorniku mamy możliwość ustalenia górnego i dolnego progu załączenia alarmu, który...
Widocznie Pinb.4 jest ciągle równy 0.
Co oznaczają linie: If Zn >= "0" And Zn <= "9" Then oraz If Zn > Chr(0) Then moze nie jestem zbyt mocny w Bascom ale dla mnie te zapisy nie mają racji bytu nie można sprawdzić warunku mniejszy równy lub większy równy dla wielkości nieliczbowych
Witam ja bym zmienił kwarc na 12Mhz to będzie rozdzielczość co 1us i wtedy timer ustaw na 50ms (50000) i masz równy czas . Nie wiem jak jest w bascomie ale asemblerze instrukcją ORL THL,#wartość można skorygować wartość licznika żeby odmierzał równy czas.
Mam staruszka ;) 1.11.9.5 mea culpa tylko z jednym - przy zapisie prescalera oczywiście bit CLKPE ma być równy zero Wielki szacunek dla tych słów. PS Nie przepadam za modą ciągłych upgradów (Bascom). Ostatecznie "ręcznie" zmienię bit U2X0.
Witam, Serwo modelarskie może nie wytrzymać uderzenia w klapę. Przekładnia raczej na pewno ulegnie zniszczeniu. Można kombinować z serwem z przekładnią metalową ale wynik uderzenia ciężko przewidzieć. Sprawa rozdzielczości sterowania jest dość prosta. W helpie do bascom AVR jest podane jak wyliczyć minimalny czas trwania impulsu w zależności od użytego...
W sumie rozwiązało to po części mój problem, bo o ile umieszczenie czegokolwiek w pętli programu dało migotanie linii (brak synchro na czas), o tyle wpadłem na ciekawszy pomysł - opóźniłem wszystkie o równy czas, bo wyświetlanie plamki jest tylko w jednym warunku...W sumie wystarczy teraz przekazać czasy przed plamką i czas trwania plamki jako zmienne...
Skąd te obliczenia? Poniżej masz kalkulator do timerów. Policz i się nie dziw. Load timer = ... nie jest równy Timer = ... http://www.elektroda.pl/rtvforum/viewtop...
Witam Bardziej profesjonalnie jest wszystkie układy potraktować jako slave . Każdy słucha i czeka na przerwanie z uarta , jak je otrzymuje odbiera zawartość z udr porównuje i albo odbiera dalej albo ignoruje i czeka na kolejny adres . Atmel wyposażył układy w tryb multimaster ,który się do tego świetnie nadaje i warto o nim przeczytać w dokumentacji...
odłącz diode i wpisz taki kod config pinx.x = output do toggle portx.x wait 1 loop i sprawdz czy faktycznie czas świecenia się diody jest jest równy 1 sek. możesz tez wymienić maxa lub chociaż zmież napięcia na kondensatorach. to naprawdze dziwna sytuacja bo to żadna filozofia to musi działać.
Rozmiar pliku BIN jest zawsze taki jak rozmiar pamięci flash danego kontrolera. Dokładnie tak. BIN dla ATmega8 będzie miał 8kB. Jeżeli twój projekt po kompilacji zajmie 1kB, to tylko 1kB z tych 8 bedzie zawierał jakieś dane. Reszta to będzie 0xff. Plik BIN jest niczym innym jak obrazem pamięci. Nie zawsze. Zależy od kompilatora, np. Bascom nie wypełnia...
Jak chcesz zobaczyć jak to robi BASCOM to zapraszam do wątku http://www.elektroda.pl/rtvforum/topic10... Może na podstawie tego wykonasz(cie) to lepiej. Poprawiając co nieco oczywiście, by okres rzeczywiście był równy 20ms.
przepraszam że się wcinam i nie na temat ale mam pytanie czy jak pod timera (T1 lubT0) zewnętrznego podepnę czestotliwość i co dany czas będę sprawdzał stan licznika to mogę sterować dwoma przekazinikami a mianowicie jeśli stan licznika większy włącz pk1 , równy nierób nic , mniejszy włącz pk2 (proszę o wyrozumiałość dopiero się uczę w bascom 51 z góry...
Dzięki za podpowiedzi. Spróbowałem także z TCNt1h=0 TCNT1l=0 i nadal to samo na wyświetlaczu wyskakuje mi 1 albo 2 i tyle jako wartość zmiennej x. Natomiast zmiana źródła przerwania na icp1 plus x=capture1 i po sprawie. Nie wiem o co chodzi i daje spokój zostaje przy tym drugim przerwaniu i sprawdzaniu który z pinów pind.2 lub pin.3 równy jest zero...
Ma ktos pomysł na prostą konwersję czasu z AM/PM na 24 godziny? Czas odczytuję w postaci AM/PM plus jeden dodatkowy bit który gdy jest równy "1" oznacza czas PM. Rozwiązałem to na IF-ach dla każadej godziny ale zajmuje to sporo miejsca w programie i nawet nie wklejam bo mnie pojedziecie jak zwykle :D Pozdrawiam
to jest transmisja wysłająca dane na jeden pin portu a drugi pin pracuje jako zegar czyli coś ala I2C poprostu 2 linie i tyle Dodano po 3 tylko I2C jest jest 8bitowa a ta moze być 8 lub 16 a moze i wiecej a jak chcesz wysyłąć dane bez zegara to użyj polecenia rotate czyli rotacji słowa ale pokoliej pisz set port resert port co jest najbardziej prymitywne....
Nie ma to jak się rozpisać :D Napisałeś dokładnie to, co próbuję przekazać początkującym. :) Super, że poświęciłeś swój czas i opisałeś swoją historię. Zawsze uważałem i uważam, tak jak wielkimi czerwonymi literami napisałem na początku w swoim artykule: Każdy język jest dobry dopóki pozwala Ci zaprogramować mikrokontroler tak jak chciałeś. Nie wiem...
Elementy RC nie muszą pracować na częstotliwości zadeklarowanej w programie. Wystarczy, żeby generator ruszył. Chodzi o nawiązanie kontaktu z MEGĄ przez programator. Później przestaw fusy na taki generator, który chcesz mieć na stałe. Jeśli podłączasz kwarc około 12MHz to na moim obrazku jest pokazane ustawienie prawidłowe właśnie dla niego. Ale przypuszczam...
Proszę o pomoc w sprawie pomiarów temperatury przy użyciu DS1820. Układ zbudowałem na AT89c4051, program napisałem bazując na BASCOM COLLEGE z EdW. Pomiar jest poprawnie wykonywany do 40 stopni C, po przekroczeniu tej temperatury wynik pomiaru jest równy maksymalnej temperaturze tzn. przy pomiarze z dokładnością do 0,5 wynosi 127,5 stopni C. DS1820...
Program ma znacznik Decode_keloq i jeśli jest równy zero to znaczy że jest ramka stałokodowa 12 bitowa i tylko wtedy jest przerywany odbiór, bo ich więcej nie będzie, a gdy jest ustawiony znacznik Decode_keloq na 1 to program liczy dalej do 64. Dodatkowo jest znacznik Startbit, jest on tylko ustawiany tak jak poniżej i jeśli jest ustawiony, to tylko...
Bascom nie ma możliwości tworzenia funkcji tak jak w C...??? Ja zrobiłbym to w funkcji tzn... Mam funkcje która normalnie wyświetla pobrany jako parametr znak... Do tego dokładam drugi parametr który będzie odpowiadał za opóźnienie... W funkcji daje prosty warunek, że np. jeżeli pobrany parametr odpowiadający za opóźnienie jest równy 0 to znak normalnie...
Druga pętla to opóźnienie reakcji na wciśnięty przycisk, a odbywa się to tak, wciskasz przycisk w tym momencie S=0 i pętla się kręci za każdym razem zwiększając zmienna opóźnienie o 1 i teraz jeśli zmienna opóźnienie osiągnie wartość 200 to program opuszcza pętlę tak samo się stanie jeśli jeśli pościsz przycisk s=1. To jest właśnie ten warunek Loop...
z teoretycznego punktu widzenia sprawa jest prosta program powinien mieć tzw tryb nauki gdzie po przyciśnięciu przycisku jest możliwość przechwycenia próbki sygnału z pilota w określonym czasie, zapamiętanie go a następnie odczyt z pamięci i wysterowanie diody nadawczej. Ale z punktu widzenia praktycznego sprawa komplikuje się: Po pierwsze jak długo...
Dokładnie chodzi mi o program który siedzi w Tray i czeka na sygnał. działa to tak: po naciśnięciu odpowiedniego przycisku bascom wysyła jakiś znak ASCII - praktycznie dowolny. Natomiast po stronie delphi "siedzi" działający timer, który co 100 ms wywołuje procedurę. Sprawdza ona otrzymany z portu COM znak - jeśli jest on równy z góry założonemu -...
Witam Jak w temacie chce wykonac dany program tylko raz ale nie wiem jakiej sztuczki programowej do tego celu użyć. oto co che zrobić declaruje dwa podprogramy (declare sub 1 i 2 np) potem badam stan przycisku je·sli równy zero to zmieniam stan wyjscia na wybranym przezemnie porcie który załacza przekaźnik i tu do tego momentu wszytko wiem , ale...
Wprzypadku A0-A2 zwartych na GND adres 64 (65 odczyt) W przypadku A0 na +5 adres 66 (67 odczyt) Teraz wracjąc do linku do stronki z opisem I2C 1. oczekuj na I2C start Czekaj na SCL=1 jeżeli jest równy 1 to sprawdź SDA gdy SDA=1 to czekamy na SDA=0 i jednocześnie pilnujemy czy SCL=1 jeżeli SCL=0 to czekamy na SCL=1 (wykrycie I2C stop to czekanie na zmianę...
Ludzie !!! Co wy bredzicie : No wlasnie o to mi chodzlo - w zastosowaniach profesjonalnych C nie ma w zasadzie zadnej konkurencji. Taką konkurencją jest ASM każdy język wyższego poziomu a takim jest C narzuca ograniczenia i zwiększa kod i z tym nie można dyskutować !!! Przy idealnym kompilatorze C ( a takiego niema i nigdy nie będzie) kod C będzie równy...
Impulsator nie będzie pracował na przerwaniu tylko zwykle w pętli do loop bo takie rozwiązanie wystarczy. W tejże pętli będą także wysyłane sygnały regulacyjne po I2C jako odpowiedź na regulacje wykonane impulsatorem oraz wyświetlane dane na LCD. Procedura obsługi przerwania od Rx (MIDI) odczytuje bajt i jeżeli równy jest 176 (nasze dane) to czyta dwa...
Sprawa wygląda tak Chcę ustawić jeden rejestr układu ADAU1701 za pomocą ATMega8 używając komunikacji i2c. Tak wygląda adres kości. http://obrazki.elektroda.pl/3991480600_1... Ponieważ adr1 i adr0 mam na masie dla write będzie to 104 i z tym raczej nie mam problemu. Nie wiem natomiast jak podzielić późniejsze ramki, ponieważ każdy subadres...
Jak w temacie - cała sprawa dotyczy diody RGB sterowanej switchem - całość chciałbym zrealizować w oparciu o attiny13. Jako, że moje doświadczenie w pisaniu programów w Bascomie jest prawie żadne i dopiero co zaczynam prosiłbym, żeby ktoś z doświadczeniem pomógł mi w napisaniu programu w Bascomie, który będzie sterował pracą diody RGB za pomocą jednego...
Nie ma standardowych wartości, ile sobie założysz, tyle masz. Nie ma też czegoś takiego jak standardowy VCO, parametry dobiera się stosownie do potrzeb. Jest wiele rozwiązań, niektóre pracują z częstotliwościami poniżej 1Hz, a inne z częstotliwościami kilkudziesięciu i więcej GHz. To samo dotyczy zakresu napięcia wejściowego, ale najczęściej mieści...
Witam ostatnio na szybko próbowałem odpalić sterowanie za pomocą pilota na rc5 tak dla poznania ale coś nie działało wiec to porzuciłem. Dzisiaj do tego wróciłem bo potrzebuje to do projektu. Wiec problem następujący ciągle sczytuje mi ze adres = 255 a Komeda = 128 (ucięty ostatni bit) nie wiem dlaczego tak jest dodam ze odbiorniki są na 100% działające...
Witam, cel pozostał ten sam, lecz zmienił się kod, tym razem bez Lcd, więc jako zadanie dostałem opisanie krok po kroku otrzymanego kodu oraz przeniesienie kodu z języka Bascom na kod Asemblera i C. Jako, że programowanie nie jest moją mocną stroną, prosiłbym o pomoc (rady, sugestie najlepiej w sposób tzw. łopatologiczny jak można osiągnąć postawiony...
Twoje działa, ale moje nie działa. Wklej mój kod w kompilator i zobacz co się dzieje [syntax=Bascom] $sim $regfile = "m8def.dat" $crystal = 16000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 Cursor Off Noblink Cls Dim Cool As Word ' zmienna określająca wypełnienie...
tutaj znalazłem dość duży kod który myślę że spełnia moje oczekiwania można zadać nawet 10x różnych pór kiedy ma włączać pompę i na jak długo tylko usunę godziny i może nawet ich ilość bo jedna czy dwie to wystarczy '##########Konfiguracja zewnętrzna########## $sim $regfile = "m8def.dat" $crystal = 16000000 Config Portc.0 = Input 'przyciski...
Hej. Nie wiem czy Prześledziłeś poprzednie kody. W tej chwili stanęło na tym kodzie. Dim Licznik As Integer Dim Wart As Single Dim Flaga As Bit Dim A As Bit , B As Bit , C As Bit , D As Bit Led Alias Portb.0 'alias dla wyjścia Portb.0 Licznik = 0 'wyzerowanie zmiennej licznikowej Portc = 0 'wyłącz wyjścia Flaga = 0 Wart = 0 '***********************...
Witam Stopniowo rozbudowując o kolejne konfiguracje układ chciałbym mieć możliwość ustawiania parametrów zegara przez pilota ( w sumie to bardziej wygodne i nie zabiera wyprowadzeń uC ). Mam program z menu działającym na przyciskach, zastosowałem flagi, gdyż sprawdzanie tylu wersji warunków niepotrzebnie zagmatwałoby kod. Zostawiłem obsługę przez przyciski...
Teoretycznie juz byłem prawie w "w domu" az zauwazyłem , ze cały program rozwalają mi flagi. Zauwazyłem , ze róznie zaczynaja zliczac odcinki czasowe - brakuje zawsze kilku cykli. Zrobiłem testowy kod by poogladac co sie dzieje (Wyciełem cały program aż doszedłem do struktur flag:-) )- identyczny jak mam w programie nad którym siedze. wariant pierwszy...
http://obrazki.elektroda.net/76_12349093... Włącznik komputera zintegrowany z igorplug Ostatnio postanowiłem zmontować sobie komputer pracujący w roli "Media Center". Jako zdalne sterowanie wykorzystałem odbiornik igorplug ( http://obrazki.elektroda.net/86_12349099... Wszystko działało bardzo pięknie - pojawił się tylko jeden problem -...
BASCOM służy do dzielenia odcinka na mniejsze kawałki???????
Dzielenie przez liczbę inną niż wielokrotność 2 też jest łatwe - trzeba liczyć zarówno stany wysokie jak i niskie. No dzielenie to ogólnie w ogóle nie jest problemem. Nie, jeszcze 162 i 64 ma po dwa 16-bitowe Widocznie przeoczyłem. karlos79: Co do synchronizacji to chodziło mi o to czy musi być 100%-owa zgodność częstotliwości wejściowej i wyjściowej*mnożnik....
[syntax=basic4gl] Config Timer1 = Timer , Prescale = 8 'Parametr Prescale może być równy:1, 8, 64, 256 lub 1024 [/syntax] Potem w programie możesz sobie odczytywać zawartość tego licznika w następujący sposób (np.): [syntax=basic4gl] Stan = Timer1 'Zmienna Stan typu Word [/syntax] robiw
dioda równy vectra równy równy megane
wymiana grzałki pralka bosch awaria grzałka punto pompa hamulcowa
Niewystarczająca ilość wody w Siemens EQ6 - przyczyny i rozwiązania Whirlpool AWM 6071 nie wypompowuje wody przy wirowaniu - przyczyny i rozwiązania