Nie napisałeś jaki ma to być Modbus ascii czy rtu, kodu w bascomie nie posiadam ale może Ci coś podpowiem, więc tak jeśli chodzi o rtu jest to postać bitowa i ważne są odstępy czasu miedzy znakami oraz początkiem i końcem ramki, jak to zrealizować a no bardzo prosto ramkę składasz z ascii i posyłasz to na rs232/485 i będzie działało może nie jest to...
Witam, Magistrala 1-wire posiada dość mocne restrykcje czasowe co do trwania poszczególnych stanów na DQ. Przerwanie Timera, a wiec wykonanie podprogramu związanego z obsługa przerwania, powodowało zmianę długości tych czasów, gdyż są one generowane softwaerowo przez Bascom. Czasem może się zdarzyć że kolizja i tak wystąpi pomimo że teraz wszystko jest...
Pospisuję się wszystkimi palcami pod zdaniem kol. - naucz się C to dobrze Ci wyjdzie. Poza tym w Bascom na dobrą sprawę też byś napisał obsługę takiego wyświetlacza. W nocie masz schematy, zależności czasowe dla sekwencji wysyłania danych, a potem strony 13-14 masz pełną listę komend z opisami - na początku tworzysz funkcje niskopoziomowe typu SendByte...
Zdecydowanie Arduino - ma ciekawą filozofię oprogramowania. To że jest w C++ też IMHO jest dużą zaletą, bo na większych platformach też w praktyce będziesz tego języka używał. Arduino ma też coś w rodzaju HAL, więc umożliwia liźniecie pewnej innej koncepcji programowania, charakterystycznej dla większych maszyn. Z drugiej strony soft do Arduino ma olbrzymie...
. Zamierzam zrobić tak by mogli wprowadzić korektę (jeśli będzie potrzebna) i zapisać w eeprom. czy to dobry pomysł? Jakoś tak; $Crystal=12000000 Config Timer1 = Timer , Prescale = 8 On Timer1 Inter_1mS Inter_1mS: Counter1 = Counter1 + Licznik (64036 - wychodzi z obliczeń, że da to 1ms) /tu odliczę sobie 103/ Błednie to rozumujesz, albo błednie podałeś...
Witam. Napisałem program do migania diodami i mam trzy pytania: 1.Czy da się ustawić cały port w stan spoczynku (coś w stylu PORTD = 0)? 2.Czy po każdej komendzie IF trzeba pisać END IF, czy da się to jakoś ominąć? 3.Czy poniższy kod jest poprawny, czy będzie działał? 1. Tak, możesz tak pozostawic. Bascom akceptuje kilka form ustawienia poziomu pinów...
Chciałbym aby ktoś mi napisał prosty program z wykorzystaniem przerwania. aby wskakiwał do niego co określony czas np 1 sekundę by niezależnie co dzieje się w programie co Np sekundę czy 5sek wyskakiwał do procedury przerwania czyli przerwanie wykonywane co określony czas a nie na podstawie wymuszenia stanu logicznego na pinie do loop przerwanie: Mam...
Laminatorem do produkcji płytek posługuję się już od lat. Cały czas tym samym, kupionym niegdyś w Tesco modelem z wałkami grzanymi od środka i plastikową przekładnią, która jednak okazała się być bardzo trwała, w przeciwieństwie do obudowy laminatora, która się z czasem mocno powichrowała, dodatkowo sterowanie dorobione kiedyś okazało się być też kiepskim...
oczywiście, że można to rozpatrywać jeszcze na miliony sposobów. Ja w swoim teście nadaję te ramki co ok 50ms. Jeśli ustawię ich wysyłanie np co 10ms to tych błędów nawet bez zasobochłonnych procesów pojawia się nieco więcej. Jeśli ustawię interwał czasowy na 100ms to błędne ramki nie pojawiają się nawet przy obciążaniu windy innymi procesami. Te błędy...
Zmieniłem na 8MHz i 1MHz w Atmega32 oraz podłączyłem pod Atmega8 na 8MHz. Dalej bez zmian ... kursor idzie ale znaków ni ma Pewnie bez Analizatora i noty katalogowej wyświetlacza się nie obejdzie. Najczęstszy błąd, to złe podłączenie LCD. Kolejny, to zależności czasowe. Bascom, nie ma debugera przez to pracy krokowej, więc masz dużo zabawy, aby znaleźć...
Jeśli chcesz uzyskać takie szybkie przedziały czasowe to proponuję popędzić licznik TIMER1 bez preskalera i ustawić go w tryb CTC by sam się przeładowywał. W przypadku gdy zliczy 1000 impulsów to przerwania właśnie będą generowane z częstotliwością 16kHz (To daje jakieś 400 instrukcji maszynowych możliwych do wykonania między przerwaniami). Niestety...
Jaką częstotliwość zegara masz podaną w ustawieniach Bascoma, tak samo jaki uK masz podany? Zawsze lepiej użyć dyrektyw REGFILE i CRYSTAL. Czy poprawnie masz ustawione źródło sygnału zegarowego w bitach konfiguracyjnych? Poprawiony kod: $regfile = "attiny2313.dat" $crystal = 1000000 Config pind.6 = output Config pind.4 = output portd.4 = 0...
pomoglo opoznienie czasowe dzieki zamykam
Możesz spróbować [syntax=basic4gl]CONFIG LCD = 16 * 2 , CHIPSET=KS077[/syntax] ..albo spróbować jeszcze zmienić FuseBity na 8MHz i w kodzie wtedy też. Widziałem takie chińskie Megi, że nie chciały z 1Wire działać na 1MHz. Może jakieś zależności czasowe poza tolerancją.
Hmmm, szczerze mówiąc nie bardzo mi się chce analizować program bo troszkę go zamieszałeś i właściwie to już nie bardzo wiem jakie zrobiłeś założenia działania tego progsa. W każdym razie widzę tu badanie krótki/długi przycisk i pomieszanie bezpośredniego czytania pinu z Debounce... jak dla mnie trochę to demotywujące. Rzuć jeszcze raz okiem na moje...
Najpierw zainstalowałem WinAVR ale szybko go odinstalowałem. Teraz używam AVR Studio 5.1. Tego pierwszego zabezpieczenia nie zrobiłem bo w BASCOM brakło pamięci. To drugie jest, bo po wciśnięciu przycisku FURTKA sprawdzane jest czy brama jest zamknięta i czy nie jest w ruchu. Teraz wymordowałem program w C++ i on zajął trochę mniej miejsca ale szału...
spróbuj umieścić obsługę 1wire w innym miejscu. być może podczas odczytu termometru obsługiwane jest np. jakieś przerwanie. w Bascomie b. trudno poustalać zależności czasowe i o ile program nie biegnie gładko dookoła, to często robi takie numery.
Czyli mam odpuścić Bascom do tego projektu I wziąć się za C? Nie, wystarczy, że poprawnie zaimplementujesz obsługę 1-wire. Sama regulacja fazowa też może być zrobiona na timerze. Ogólnie - im mniej będziesz miał pętli w programie, tym lepiej to będzie działać. Implementację 1-wire bez UART też da się zrobić, tylko trzeba lepiej przemyśleć kod, żeby...
... 1wreset 1wwrite &HCC ' skip ROM 1wwrite &H4E ' writescrstchpad 1wwrite ' tutaj po kolei 3 bajty jest prawidłowa? Brakuje jeszcze jednego polecenia , czyli Copy Scratchpad (&H48) .Zajrzyj do pdf-a DS-a , by dowiedzieć sie czemu ono służy , oraz jakie wymagania czasowe stawia , w zależności od rodzaju zasilania czujnika. Piotrek
Jeżeli nie ma zakłóceń zewnętrznych, to jedynie któreś z przerwań zakłóca Tobie tą procedurę. Inna możliwość to niewłaściwe stany na wyjściu zegarowym lub nie zachowane zależności czasowe na wyjściu zegarowym (PC.0). Niestety nie wiem jak masz zrobiony wyświetlacz, więc raczej więcej nie będę mógł pomóc.
Nie ma bata. Z ds na 1wire i multiplexem led musi mignać. I nie słuchajcie zadnych zapewnień że "mi nie miga". Napewno miga. rygory czasowe w ds to są us (mikrosekundy) i nie ma takiej możliwości żeby bascom się wyrobił. Mylisz się , jest bat :D Rozwiazanie? Zacząć stosować czujniki na I2C zamiast 1wire. ... A da radę na 100m lub dalej :?: Piotrek
16 bitów, aż tak stabilne wartości chcesz mierzyć. Niekiedy stosowanie tak dokładnych przetworników jest niecelowe bo i tak rzeczywista rozdzielczość sięga max 12 bitów. Przemyśl sprawę i może w tej samej cenie kupisz powiedzmy 12 bitów z multipleksowaniem wewnętrznym, które na pewno lepiej Ci się sprawdzi bo nie martwisz się o odstępy czasowe przy...
A kto powiedział,że on musi mieć dokładnie jakieś tam parametry czasowe ??. W większości przypadków wystarcza prosta pętla czasowa - aby zachować minimalne czasy trwania impulsów.Przy takiej transmisji synchronicznej zegar może się "kołysać" .Nawet gdy wstrzymamy na chwilę transfer na złączu (np. gdy wystąpi nadrzędne przerwanie i procek coś tam ważniejszego...
no ale własnie chodzi o to zeby był mały ;) teraz jest około 31mA a bez tej dodatkowej multiplaksacji 130mA. Szukam sposobu na to aby czas swiecenia był troche dłuższy ale jak wstawie jakieś opóźnienie czasowe w pętli z"read" to procedurka sie nie wyrabia w przerwaniu i program sie wiesza.
Ale nowe projekty rób już w C na bazie tego: http://mikrokontrolery.blogspot.com/2011... Właśnie odwiedziłem tę stronę i chyba zakupię tę pozycję. Rozpoczynając pisanie od nowa (wakacje) ale droga będzie WYBOISTA. Póki co zostanę przy tym co mam. Bascom dlatego że: -była ośla łączka 2004 rok wtedy już powstał...
Niestety nie znam algorytmu, który ma być realizowany ale z doświadczenia wiem, że KAŻDY problem ma co najmniej dwa rozwiązania i zamiast wykonywać wszystkie instrukcje w jednym przerwaniu może wystarczyło by je rozbić na sekwencje... Znacznik z przerwania dla kodu w pętli głównej ma sens tylko w przypadku gdy ramy czasowe są elastyczne i nie ma obowiązku...
ver. 1.11.8.1 z 2005 roku wg "About". Jeśli chodzi o pytanie o to czy chodzi bez problemu to jest to oczywiście tylko pomyłka wynikająca z tego że pisałem kod w poście z palca a nie kopiując. W sprawdzanym programie oczywiście jest zmiana dla timera0 na prescaller = 1024 i wartość początkową 178 tak żeby mniej więcej wychodziło 10ms przy 8MHz. Pozdrawiam...
Jedna sprawa mnie niepokoi, mianowicie przebiegi czasowe Do If pinb.1 = 0 Then set portb.4 ........ Loop Jeśli na pinb.1 pojawi się stan niski to AVR ustawi wyjście, OK. Ale stan niski trwa 20 ms, więc przy "kolejnym" obrocie pętli stanu niskiego na wejściu już nie będzie, czyli warunek nie będzie spełniony i wyjście powinno się skasować. Wyjście będzie...
emarcus da się wogóle zastosować Twój pomysł w pętli? Próbuję i za każdym razem inne efekty :( Raz skonfigurowany i zastartowany timer1 lub inny, liczy impulsy lub przedzialy czasowe wg tej zadanej konfiguracji w kolko; nikomu to nie przeszkadza. Nie musisz go zatrzymywac lub startowac znow. Jesli zachodzi potrzeba wykorzystania jego uslug, wystarczy...
Zasilanie można zrealizować przez odpowiednio opóźnione załączanie triaka, tak aby zawsze przez chwilę było na nim napięcie wystarczające do zasilenia układu. Trzeba to jeszcze rozwiązać układowo. Gdzieś widziałem taki wynalazek. Co do uczenia się kodów, to trochę skomplikowane. Musisz odebrać kod i zapisać go w pamięci jako na przykład liczbę i długości...
Właśnie myślałem też nad takimi rozwiązaniami (a szczególnie z jedną pętlą ze wszystkim i działa). Zastanawiający jest jeszcze taki problem, jeśli w pętli generuję przebieg prostokątny (na jednym pinie) o częstotliwości np. 0,5 Hz czyli odstępy czasowe po 1 s między zmianami stanu pinu, a jednocześnie chciałbym np. sterować silnikiem poprzez PWM to...
witam już po problemie - temat można zakończyć:) winny okazłą się kwarc! czemu niewiem.... wszystkie DS18S20 i DS18B20 jaki pamięci w 1wire procek czytał bez problemów... a pastylki nie.. mam jak wspominałem już ich 10 sztuk i ani jednej nie widział nie odpowiadały na sygnał resetu..nawet wymiana kwarcu naprawiła wszystko ... teraz jużniemam żadnych...
mam prośbę kto bedzie w stanie zrobić mi w bascomie program ON/OFF taki dosyć prosty program bym go mógł zrozumieć i cały schemat elektroniki jak to po podłączać oczywiście z wykorzystaniem rfm01 i 02 i megi8 w nadajniku maja być dwa przyciski do włączania dwóch urządzeń i ma być to załączanie czasowe np stan wysoki przez 5s dam 40ptk. 40zł Przeniosłem...
Odpała mi komunikacja lpt->rs ze względu na programowe niedokładności czasowe wystawianych danych na lpt. Odpada mi teraz komunikacja w SPI z uwagi na to, że Bascom przy komplilacji nie rozpoznaje poleceń on spi ... i enable spi :(. Jak to ustawić? W helpie ewidentnie instrukcja enable spi jest wymianiana, a przy kompilacji wyskakuje błąd "Unknow statement...
amiast multiplekserów lepiej użyć 3-stanowych buforów jak 74HC244 dla adresu i 74hc245 dla danych. Łatwiej zaprojektować PCB. Rozwiązania takie można znaleźć w archiwalnych numerach EP i PE pod hasłem "emulator pamięci rom/eprom". Dla danych nie jest potrzebny, bo wystarczy przestawić porty IO AVR na wejścia. Ew. może się przydać, jeśli w emulowanym...
ATmega8 ma tez wewnetrzny oscylator 8MHz. nieradze ustawiać tego generatora na 8Mhz gdyż oprucz taktowania procesora ma on drugą funkcję. generuje on przebiegi czasowe podczas programowania pamieci EEPROM i FLASH. ustawienie go na 8Mhz może doprowadzić do błędów zapisu oraz skrucenia życia tych pamieci. wiecej info w nocie katalogowej. Brrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr.........
Proponowałbym najpierw sprawdzić oscyloskopowo jak nadaje ta "reszta" pilotów. Niekoniecznie musi to być RC6. Może to być np. SIRC. Na podstawie tego możesz taką procedurkę napisać samemu: http://www.sbprojects.com/knowledge/ir/r... Jak to robi BASCOM przy RC5? Przy odczytywaniu kodów przez GETRC5 robi to po najmniejszej linii oporu. Ustawia licznik...
ustawilem wszystko z poziomu opcji w bascomie ,ale tez dla pewnosci probowalem z $baud i pozostalymi w kodzie ,lecz dalej lipa. Ostatnio dochodzenie wykazalo ze nie bardzo zmienia poziom stan napiec na wyjsciu max232 , mimo ze na wejsciu tego ukladu pewne roznice w trakcie pracy zauwarzyc mozna... acha ! jeszcze jeden dosc typowy za pewne problem zwiazany...
Witam! Programując ten kontroler mam poważny problem. Funkcje czasowe (waitms) nie działają tak jak trzeba. Program w stylu: do dioda = 1 waitms 500 dioda = 0 waitms 500 loop powoduje miganie diody w bardzo nie regularnych odstępach czasu - widać to "gołym okiem". Na dodatek trudno nazwać te odstępy "pół sekundy". Sytuacja jest podobna przy różnych...
kolego Michał~88 --> czy ty rozumiesz co to są fusebity i dlaczego ustawia się za ich pomocą częstotliwość taktowania procka??? toż masz nie przestawione - czyli fabrycznie 1MHz - i tak jest procesor taktowany - a ty deklarujesz sobie w programie że taktowany jest 4MHz. Tobie się chyba wydaje, że ustawienia fusków można sobie odpuścić a dyrektywa $crystal...
wiem , że tak można tylko nie wiem jak mam napisać ten kawałek kodu :-) Możesz to zrobic na wiele różnych sposobów zależnie od taktowania processora i od możliwości wolnego timera. Załóżmy że masz dostepny timer1 (metoda najprostsza i najłatwiejsza). F(takt) = 1 MHz Konfigurujesz Timer1 w trybie normal z prescalerem =256 ; co da pełny zakres max 16.7...
Pozycja słońca jest w 100% przewidywalna więc chyba prościej policzyć gdzie jest i nastawić panele w odpowiednie miejsce. Może i prościej, teoretycznie. bo w praktyce śledzenie jasnych miejsc o wiele lepiej się sprawdza. Bardzo często obserwuję jak po południu chmurki całkowicie zasłaniają słoneczko, a panel w tym czasie jedzie zupełnie w przeciwną...
Chodząc po warszawskim Wolumenie natknąłem się na niezłą okazję, mianowicie w ciężarówce „Sławmira” sprzedawali graficzne wyświetlacze Samsunga 128x64 z podświetlaniem EL i z opisem, po 30zł za sztukę (mieli ich cały karton więc może się też załapiecie), takie same widziałem w sklepie po 140 zł. Kupiłem od razu 3 sztuki. Wyświetlacz...
Witam, ....... Co jest nie tak w moim programie? W pierwszej kolejności proponowałbym zweryfikowac czy faktycznie processor jest taktowany f = 8 MHz; częsty błąd to brak przestawienia fusebitów z fabrycznych ustawień 1 MHz i deklarowanie innej częstliwości. W takiej sytuacji generalnie program może wydawac się że 'jakoś' funkcjonuje szczególnie gdy...
Podłącze je do nowego procesora do którego chce napisać program(wiem że wyprowadzenia nóżek nie będą sie zgadzać między nowym a starym prockiem.W tym celu zaprojektuje sie nową płytkę drukowaną i sie odpowiednio połączy wyprowadzenia starego z nowym).Wszystko wiem jak trzeba wpisywać sekwencje do pamięci ram(wszystkie zasady działania układu komputerowego...
Kurde nadal nie kumam włącznik (przycisk) jest oznaczony jako Wl_wiatrak Ogólny warunek czy ma działać (wł/wył) Wiatr_ena Załączanie wiatraka OUT do przekaźnika Wiatrak Ustawiany czas pracy w sekundach w menu W_czas I z tego trzeba poskładać - chyba to wszystko co jest potrzebne ten kod po prostu na stałe wł i wył przekaźnik If Wiatr_ena = 1 Then Wiatrak...
Czytam, czytam. Akurat tam zaglądam nad wyraz często - wiem jak poustawiać bity, itd - moje pytanie tyczyło się głównie wydajności prądowej, itd, prawda? ;) Nie programuję w C. Nie chcę. Wystarczyło mi nauki assemblera. C, no cóż, może kiedyś. A Bascom nigdy :D Co do kodu - wiesz ilu programistów popełniało samobójstwa przez intuicję? ;) Nie no, żartuję....
No maszyna to trochę zbyt dużo. Myślałem żeby użyć schematów drabinkowych, przekształcenia ich na kod pośredni (C, BASCOM czy asm), kompilator tego kodu pośredniego na kod maszynowy i wgranie do procesora. C chyba będzie najlepsze bo znajdzie się kompilator pod Windows (konsolę) i programator. (Prosty plik bat do zestawu.) To będzie dobry zestaw, bo...
Siemka! Tak jak napisał kolega wyżej, wpisz $Crystal=1000000 Każdy nowy AVR prosto ze sklepu ma fabrycznie ustawione taktowanie na wewnętrzny zegar 1MHz, zatem Twój kwarc nie gra żadnej roli w tym układzie dopóki go nie uaktywnisz poprzez konfigurację FUSE BITS. W momencie gdy nie przestawiłeś zegara a zadeklarowałeś wartość wlutowanego kwarcu, bascom...
Witam. Mam problem z odświeżaniem LCD, chciałbym aby mi się odświeżało dopiero po zmianie temperatury. Wzorowałem się na tym temacie: http://www.elektroda.pl/rtvforum/topic15... lecz u mnie nie chce to działać Poniżaej zamieszczam kod: [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3...
bascom sterowanie czasowe opóżnienie czasowe odliczanie czasowe
odczepy regulacja prądu dmuchawa szczotka naprawa przetwornica funai
Viessmann Vitodens 222 WS2 – kody serwisowe, błędy, wejście do menu serwisowego Wyświetlacz w lodówce Haier nie świeci - diagnostyka