W Bascomie jest do tego specjalna instrukcja Zaglądnij do Helpa na polecenie Pulsein Zauważ że zarówno instrukcja pulsein jak i pulseout mierzy tylko czas trwania impulsu a nie całego cyklu; patrz paniżej diagram: http://obrazki.elektroda.pl/1148630500_1... Zmierzysz tylko L1 albo L2 . Autor potrzebuje zmierzyc czas L (czas pomiędzy...
Nie prościej generować przerwanie co np 1s od timera?
No cóż. Wprawa i rutyna (niestety). Zapraszam do nauki. Z uC można 1000000 razy więcej.
No to kawa na ławę. Instrukcja Getrc5 w czasie działania używa jest licznika TIMER0 i związanego z nim przerwania. Licznik ten jest służy do generacji wymaganych opóźnień podczas próbkowania sygnału. TIMER0 może być dalej używany przez program, lecz należy się liczyć z wynikłymi opóźnieniami, gdy wykonywana będzie funkcja GETRC5(). Jest tylko jeden...
Emarcus on liczy przepełnienia timera, który generuje przerwania, co 4ms i coś tam robi w przerwaniu. Ostatnia linijka postu, który cytujesz.
Szybciej byś kupił mową ATmega16 i po kłopocie....
Sprawdź jeszcze jeden "myk" Wszędzie zamiast Chr( ) wpisz ten sam numer tylko w nawiasach klamrowych (bez Chr - tylko sam nawias i trzy cyfry) Przykład: Zamiast Chr(1) wpisz Lcd {001} Zamiast Chr(7) wpisz Lcd {007} Zamiast Chr(32) wpisz Lcd {032} Kod się znacząco zmniejszy co może się czasem przydać przy małych mikrokontrolerach. Chr( ) to funkcja zamieniająca...
No to zaczynamy po raz kolejny. Coś takiego jak stworzyłeś to niestety za szybko nie będzie działać. Mega z kwarcem rs 14 z groszami działa naprawdę szybko i można zrobić bardzo dużo w jedna sekundę. Do odbierania i wysyłania danych można sobie napisać własną procedurę - nawet w bascomie i jest ona sporo szybsza i działa rewelacyjnie. Deklarujemy przerwania...
Liczniki są osobnymi blokami uC, więc jeśli sygnał wejściowy jest poprawny, to impulsy powinny być zliczone poprawnie. Podany wyżej program to program użyty w moim mierniku częstotliwości okrojony z niepotrzebnych ci rzeczy, które mogłyby zaciemnić jego sens. Działa przy częstotliwości kilku MHz.
Zainteresuj się funkcja Printbin oraz podziel dane na osobne bajty.
Może się pomyliłem, ale chyba przerywasz sobie odbiór co 2ms. Dlaczego nie użyjesz wyższego preskalera? Np. 1024? Możesz nawet po ustawieniu Flagi wyłączyc Timer i po odbiorze włączyć ;) Timery można dowolnie konfigurować podczas pracy programu. Druga sprawa ustaw sobie odbiór do bufora w tle (Config Serialin = Buffered, Size..)
A moze to nie jest kwestia Bascoma tylko tego ze Atmega nadal chodzi na wewn. oscylatorze 1MHz. Z objawow by tak wynikalo ze tak wlasnie jest. Przestawiales fusebity na prace z zewnetrznym kwarcem ?? Pozdro Dexter
Najpierw dajesz Config INT0=Falling Wprowadzasz zmienną opisującą wybrane zbocze wyzwalające przerwanie (Edge_) i w procedurze obsługi tego przerwania: If Edge_ =0 Then Start Timer1 Config INT0=Rising Else Stop Timer1 Config INT0=Falling End If Niektóre AVR'y umożliwiają konfigurację typu Config INT0= Change Wtedy przerwanie wywoływane będzie po stwierdzeniu...
Jak czytałeś lub nie :) karta ma sekwencje "startu" , nie pamiętam teraz jaki ma format, jest to jakiś 5bit znak, ja najpierw z czytuje cały bitstream od czytnika i potem funkcją szukam startu jak nie znajdę to "przekręcam" bufor (znaczy ostatni bit staje się pierwszym w strumieniu) i jeszcze raz szukam znaku startu, potem już tylko na podstawie tablicy...
Witam Ustaw 4 jedynki. Pozdrawiam
Można bazować też na tutorialu na atmega8... Jest nieco więcej chyba tutoriali na ten uC... Oczywiście trzeba się zapoznać z dokumentacją do mega16 bo konfiguracja portów jest inna... Pozatym drastycznych różnic niema... Co do języka to bascom faktycznie jest nienajlepszy i chyba nawet nie warto się w niego pchać... W miarę dobrze znam C a asembler...
ale kabelki od komórek mają inne poziomy napęć 0V-3V w środku powinny byś jakieś didoy zenera albo coś. najlepiej zrób sobie swój kabelek do atmeli. Właśnie tego chciałem dociec :D Mój znajomy , podłączał taki kabeleko do proca przez MAX232 i dziwił się , że toto nie działa :) Piotrek
hmm. mam lcd'ka podswietlanego folia EL. chciałem na jednym z pinów procesora 89C2051 (nieposiada on PWM) wygenerowac czestotliwosc 20-40kHz za pomoca prostego polecenia SOUND. W ten sposób wysterowac jeden tranzystor bipolarny. Ten z kolei minitransformator podnoszacy napiecie z 5V na 100V Jakie wartosci indukcyjnosci miał by on miec?? rdzen np taki...
Ain0 w procku jest podłączone do masy? bo jak tak to raczej nigdy nie znieni się stan na wyjściu wewnętrznego komparatora, minimalne napięcie na wyjściu wzmacniacza operacyjnego (LM358N) wynosi około 0,7V. znam na to dwie rady: 1; na wejście Ain0 daj napięcie z dzielnika rezystancyjnego (może być potencjometr) 2; zwiększ wzmocnienie na wzmacniaczu i...
Witam. Transformator zastosuj troszkę większy np.TS4/40, bo wiem że 2/14 będzie sę znacznie grzał przy wysterowaniu wszystkich przekaźników naraz, dodatkowo między reset a VCC wepnij opornik 4,7....10k tylko przy programowaniu go odłącz. Styki wykonawcze (obciążone) przekażników zabezpiecz warystorami., no i te diody jak kolega pisał wyżej koniecznie...
Oprogramowanie jest takie samo jak do 3210 i 3310. Różnica występuje w podłączeniu bo zamiast 8 wyprowadzeń 5110 ma 9. Polecam kurs z EP 5, 6, 7/2003. Programy w BASCOM'ie znajdziesz na forum. P.S. Wyświetlacze od NOKII to bardzo krucha materia. Łatwo je uszkodzić więc zapoznaj się z kursem i nie przesadzaj z kontrastem. (Zanim do tego doszedłem wykończyłem...
$crystal = 14745600 Czy oprócz podłączenia takiego kwarcu ustawiłeś odpowiednie fuse bity? Następna rzecz to nie musisz robić resetu 1wire. Największy błąd polega na tym że nie czytałeś helpa bo gdybyś to zrobił to dowiedziałbyś się że zmienna do której zapisujesz ilość urządzeń koniecznie musi być typu WORD lub INTEGER. Na koniec radzę ci skorzystać...
[syntax=vbnet]Lst = Array(&B11111110,&B11111101,&B11111011,&... do for each V in Lst ; tu wpisujesz do portu wartość V Waitms 100 next V loop[/syntax]
Automatykon - czy Ty przeczytałeś mój wcześniejszy post w tym wątku? Przecież problem masz tam rozwiązany. teedd
Musisz wyzrować bity RS1 i RS2 w Control Register (0Eh) ,13 strona DS
No to kupiłem drugi mikrokontroler i ISP działa. Mam pełne porty A B D ale za to nie mam PC2-PC5. Znalazłem, że to porty od JTAG i chciałem ustawić JTAGEN na 1 w AVR8 Burn-O-Mat v2 ale niestety jest on na czerwono i nie mogę go przełączyć. Czy jest jakaś możliwość za pomocą programatora ISP dokładnie usbasp wyłączyć JTAG? Może zamiast programatora...
Instrukcje masz? Lub chociaż schemat tej płytki? Na pewno. Google : Kurs AVR BASCOM lub GCC.
Przede wszystkim. Zejdź z taktowaniem do jakiejś normalnej wartości dla ATmega16 i przetestuj czy wtedy komunikacja z DS-ką jest prawidłowa. Jeśli nie to najpierw musisz naprawić sprzęt/algorytm by wszystko działało prawidłowo. Jeśli na niskim taktowaniu komunikacja będzie w porządku to będzie to oznaczało tylko to, że specjalne makra opóźniające jakie...
Darmowy bascom AVR pozwala na 4kB kodu. Może się udać. ATmega8 lub ATmega16 posiadają przetworniki ADC o rozdzielczości 10-bitów Przy pomiarze ciśnień do 1500 barów realna dokładność odczytu będzie na poziomie ok 3 barów. Sam musisz zdecydować czy to wystarczy. Jeśli będziesz musiał zastosować zewnętrzny przetwornik dla większej dokładności to w4kB...
Witam. Mam problem z uruchomieniem sterownika z tej strony: http://mirley.firlej.org/prosty_sterowni... Bascom poprawnie programuje avr ale jest problem z ustawieniem fusebitów. ............ Jak poprawnie ustawić fusy w bascomie ? W czym konkretnie masz problem? Nie potrafisz poprawnie zidentyfikowac fusebitów, czy też ich wyeditowac wg potrzeby?...
Witam zauważyłem dziwny objaw. Mianowicie odbieram dane przez sprzętowy uart z atmegi pochodzące z klawiatury. Klawiatura wysyła znak w momencie nacisnięcia i puszczenia przycisku. Zauważyłem że naciskając około 21 razy klawisz (wysłane 42 znaki w hexie) to resetuje mi się program i mikrokontroler... Teraz pytanie czym to jest spowodowane. Pomijam tutaj...
Dzięki za pochwałę do wejscia RXD mam podłączoną diode i opornik jak w pierwszym poście tylko ze dioda to 1n4148 a opornik ten sam czyli 10k wpiołes sie dobrze w szyne ibus ale widze ze masz dużo błędów w programie np brak pętli itp osobiście robię projekt na atmega16 który będzie pracował w roli tempomatu i obecny kod mam bardzo rozkopany postaram...
8 znakow SN da sie bez problemu zapisac w 4 bajtach + 1 bajt na dodatkowa dane, czyli 5 bajtow na kazdy "rekord". I teraz: 500 * 5 = 2500 bajtow. Pamiec 24c32 ma pojemnosc 4096 bajtow a 24c64 - 8192 bajty co pozwala w Twoim przypadku zapisac ~1638 "rekordow" czyli az nadto. Pamieci te sa tanie i latwo dostepne. Zatem karta SD jest w tym przypadku raczej...
Zmieniłem program na ATmega8 ( bo ATmega16 nie posiadam ) [syntax=basic4gl] '$regfile = "m16def.dat" $regfile = "m8def.DAT" $crystal = 8000000 Config Pind.7 = Input Config Pinc.0 = Output Set Portc.0 Set Portd.7 Do If Pind.7 = 0 Then Portc.0 = 0 Else Portc.0 = 1 End If Loop End [/syntax] wgrałem, program działa dobrze. Bascom DEMO 2.0.7.1
Proponuje zacząć od ćwiczeń na jakimś gotowym zestwie np. coś takiego: http://sklep.avt.pl/p/pl/49612/plytka+dr... Lub szukaj pod nazwą "Zestaw uruchomieniowy". Jeśli czujesz się na siłach to możesz kupić w częściach i zlutować samodzielnie. Jak nie, to szukaj gotowego uruchomionego. Na początek sugerowałbym coś z procesorów...
Nie znam BASCOMA ale nei masz tu ani ustwionej szybkości transmisji ani nie piszesz nic o ustawoenieu fusebitów. Może ATmega16 pracuej Ci w dalszym ciągu na wewnętrznym rezonatorze 1MHz - na co by zresztą wskazywało: "... W dodatku odmiezane czasy przez procesor sa znacznie wydluzane..."
Witam. Wczoraj programowałem (STK500 + Bascom AVR) uP i ...... ............nie daje się zaprogramować ... Pierwsza rzecz: jeżeli faktycznie dysponujesz programatorem STK500 , to ten programator ma możliwość programowania wysokonapięciowego oraz równoległego z pominięciem ISP, więc problem przypadkowego wyłaczenia ISP lub zaprogramowania pinu 'Reset'...
No tak, to święta prawda. Do tego Bascom sam z siebie dodaje sporo zbędnych procedur. Najgorszym przykładem jest obsługa LCD - ok 1kb kodu. Ja teraz kończę obsługę I2C Slave bo Bascom oferuje to tylko za dopłatą. Bascom , jest jak ... klucz uniwersalny. Potrafi odkręcić wiele śrubek , ale jest jest duuuuużo większy od np. ósemki oczkowej ;) Tą z kolei...
Bascom sam się nie zajmie resetowaniem Watchdog'a, jak słusznie zauważył Holy . Żeby z niego skorzystać najpierw trzeba go skonfigurować (ustawić stopień podziału - od tego zależy czas potrzebny na przepełnienie jego licznika) poleceniem CONFIG WATCHDOG = czas , później uruchomić: Start Watchdog . Teraz w newralgicznych punktach programu musi zostać...
http://obrazki.elektroda.pl/8074733100_1... Witam, Ostatnio wpadła mi w ręce karta VGA sterowana poprzez złącze szeregowe SPI. A a ponieważ w domu poniewiera się kilka starych monitorów VGA to postanowiłem zbudować zegar wyświetlający czas i datę na monitorze VGA (bez udziału PC) Takiego zegarka na elektrodzie chyba jeszcze nie było....
Nie znam się na bascomie, ale nie widzę żebyś gdzieś użył metodę "debounce". A, i jeśli się nie mylę, to odczytywać powinieneś z "Pina", a nie z "Porta". A w linii z If wykonujesz odczyt z portu, a nie zapis do niego.
Czyli tak - dajesz Atmelka zależnie od potrzeb ATTiny2313, ATMega8 lub ATMega16 /8515/8535 itp...(portów hohohoho), do PC łączysz się przez: 1. SPI/USI<>LPT (wersja nie wymagająca dodatkowych elementów), PC pracuje jako MASTER, ATMEL jako SLAVE (ten układ składa się TYLKO z procesora, jakiegoś kondensatorka odsprzęgającego zasilanie) 2. UART<>RS232...
Poniato Dzięki - jestem poczatkującym
Witam, Twój schemat przypomina trochę schematy z gazet - maksymalne upchanie elementów, co mocno utrudnia czytanie - tylko że tam jest to podyktowane ograniczonym miejscem. Ogólnie robi się tak - wejścia układu po lewej, wyjścia układu po prawej. Sygnały "płyną" z lewej na prawą. Punkty znajdujące się wyżej na schemacie mają zwykle wyższy potencjał...
Więc tak potrzebuje wyświetlić liczbę w formacie x.x. I nie wiem jak to zrobić próbowałem tak iż daną liczbę mnożyłem razy dziesięć zaokrąglałem do liczby całkowitej funkcją round a następnie robiłem dzieliłem na dziesięć ale na wyświetlaczu lcd i tak pojawiało mi się kupę liczb po przecinku w formacie x.x00000001 lub podobne x.x999999991. Jak to zrobić...
Wydaję mi się że jest to możliwe ale procedura umieszczona w podprogramie powinna być bardzo krótka. Pewniejszym sposobem jest stosowanie flagi w przerwaniu a w pętli głównej przetwarzanie jej.
Bascom nie obsługuje jeszcze sprzętowego I2C :(
Tu nie ma pytać czy to ma sens, bo to jest jedynie słuszna droga, a to że ci coś nie działa po przeniesieniu do pętli głównej to już tylko wina programisty czyli twoja..... Tym bardziej, że jeśli programując w Bascomie ty chcesz mieć wykonywane operacje co 100us w takim trybie - to życzę powodzenia. Po prostu przyjąłeś totalnie złe założenia a do tego...
Witam. Pytanie odnośnie kompilatora Bascom AVR. Załóżmy, że w programie wykorzystuję dwa przerwania. Pierwsze pochodzi od nóżki Int0, drugie od przepełenienia Timer 1. Czy (i kiedy) w procedurze przerwania powinienem stosować wyłączanie przerwania na czas jego obsługi? Niby Bascom udostępnia gotowe disable interrupts (wyłącza cały system przerwań) oraz...
Mam taki problemik, ponieważ wyświetla mi się godzina jako np 12:1 zamiast 12:01 Do temperatury użyłem polecenie Format(str(temp) , "00.0") i działa OK ale jak zrobię tak z godziną to kompiluje się normalnie ale potem program nie działa tylko resetuje się co chwila :( sprzęt Atmega16, programowana w Bascomie AVR
atmega16 bascom atmega16 bascom 1wire timer atmega16 bascom
kółka metalowy karta grafiki artefakty wyświetlacz renault scenic
xprog programator xprog programator
Parametry warystora 20K371: Napięcie, Prąd, Zastosowanie Migająca zielona dioda standby, brak obrazu w monitorze