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.
przydał by się schemat
Kodzik jest przykładowy. Musisz myśleć :P Zwiększ te Waitms 10 pod Loop Until bo nawet mrugniecie oka trwa dłużej... Zwykłe "debounce" najczęściej ustawia się na 25ms a Ty masz 10...
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.
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ł...
Zerknij do wiadomości PW...
Zastosuj podciąganie: Portb = &B11111111 A poza tym to widzę taki sam temat w koszu. Pewnie ktoś zaraportował jako obniżanie poziomu.
Emarcus on liczy przepełnienia timera, który generuje przerwania, co 4ms i coś tam robi w przerwaniu. Ostatnia linijka postu, który cytujesz.
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...
A widzial kolega to: http://www.elektroda.pl/rtvforum/topic17... Zwróć uwagę co robię z INT0 podczas odczytu 1W Poza tym u Ciebie w podprogramie odczytu temperatury nie dajesz nic wytchnienia dallasowi i czytasz temperaturę zaraz po rozkazie konwersji. Kolejna sprawa to czy zawsze przed odczytem musisz szukać czujników? Nie lepiej jest to zrobić...
Zmień rezonator kwarcowy, bo pewnie padł. Zdarza się.
http://www.mcselec.com/index.php?option=... Proszę bardzo.
Szybciej byś kupił mową ATmega16 i po kłopocie....
Na wejściu (PortC.0) pojawia się stan 0 (na przykład z układu ULN2803) to na wyjściu (PortA.0) pojawia się stan 1 wysoki. Np. tak: If PINC.0 = 0 then PORTA.0 = 1 end if Jak robisz coś takiego: Config Portc = Input to lepiej zrób to tak: DDRC = 00000000 A potem jeszce to wszystko podciągnij do 1 tak: SET PORTC Już nie wspomnę o wyłączeniu JTAGA bo inaczej...
No to spróbuj tego: $regfile = "m16def.dat" $crystal = 4000000 $hwstack = 32 $swstack = 32 $framesize = 32 config 1wire= portb.7 Do 1wreset if err=0 then print "PP_ok" ' czy LCD "PP_OK" - co tam masz else print "PP_err" ' j/w endif waitms 500 Loop Napisz o wyniku doświadczenia :D Piotrek
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...
Dla Twojego systemu automatycznej regulacji wymaga się aby utrzymywana była stała temperatura. Załóżmy, że zastosujesz prostą regulację włącz/wyłącz gdy temperatura spadnie/wzrośnie w stosunku do wymaganej temperatury. Może się tak stać, że temperatura otoczenia wahać się na będzie na granicy temperatury referencyjnej - spowoduje to, że układ wielokrotnie...
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
Nie rozumiem jak przerwanie od licznik 8 bitowe mialoby przeszkadzac w dzialaniu pozostalych przerwan czy calego programu.. Przerwanie np przy 16Mhz bedzie generowane 62500 /preskaler na sek od licznika 8 bitowego, a zajętość (stan CLI) procesora oceniam na ponizej 1 uS co chyba nie wplynie na pozostale zadania procesora.
Większość gotowych systemów alarmowych posiada wejscia parametryczne tzn takie, które wymagają rezystorów . Budowa takich wejść opiera sie o tzw komparator okienkowy ,który dość łatwo zrealizować w oparciu o dwa komparatory analogowe np LM393 lup poczwórny LM339. M16 to właściwy wybór pamiętaj tylko że układ w czuwaniu pracuje wiele godzin więc należy...
Zainteresuj się funkcja Printbin oraz podziel dane na osobne bajty.
Porównuj etapowo. Najpierw dzień i jeśli się zgadza to potem minuty itd.
Jak zmusić diodę alarmu do migania nie używająć procedur waitms ? Mam teraz zrobine tak: Używasz Timer0 jako pewnego rodzaju 'swoisty' prescaler: (4 ms; 100 ms; i 1 sec). Dlaczego okazyjnie nie wykrzystać tych 100 ms na miganie diodą? Wstaw tą wyżej procedure (troche zmodyfikowana - zamiast "set Porta.5" daj "toggle") w przerwaniu timera0 w miejscu...
a przejrzał kolega chociaż raz przykład odbioru RC5 z helpa Bascoma ??? oczywiście tam nie jest on w przerwaniu ale to nic. Za to są takie rzeczy jak: - maskowanie tooglebitu - sprawdzanie czy adres jest np = 0 - co oznacza pilota TV albo przynajmniej jakiś warunek czy adres < 255 - bo inaczej to będzie taki klops właśnie jaki u ciebie występuje...
Sprobuj jeszcze od timera0 obsluge przerwania w petli glownej, a Krotki kod generujacy tego prostokata, mozesz zorbic: -przeliczajac ile z danym kwarcem wynosi okres danej czestotliwosci wpisac do licznika timera1 polowe tej wartosci, aby co pol okresu zmienial stan wyjscia na przeciwnym, przerwanie od Timera1 oczywsice ze wzgledu na prostote zrob w...
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.
Instrukcja WAIT Przeznaczenie: Przerywa działanie programu na określony czas. Składnia: WAIT il_sekund Opis: Instrukcja wstrzymuje działanie programu na podaną ilość sekund. Odmierzany czas jest wartością przybliżoną, więc nie należy stosować tej instrukcji do dokładnego odmierzania czasu. Używanie przerwań, może znacznie wydłużyć działanie instrukcji....
Zapis LCD(0, Index) dałem umownie bo nie wiedziałem jak będziesz to wyświetlał. Wstaw swój Lcdtext Seq(index), 0, Index * 8... w pętlę For...Next wyświetlania i gra. :)
Wyrzuć ten wzór i obmyśl jakiś inny. W tej postaci to się absolutnie nie nadaje. Z ADC możesz uzyskać maksymalną wartość 1024, teraz podnieś to do potęgi 6 i wychodzi ci absurdalna liczba, program wywala się juz na pierwszym obliczeniu. Obliczanie napięcia może wyglądać tak: [syntax=basic4gl] Dim Obl_nap As String * 6 Dim Wartadc As Word Dim Tymcz As...
A nie ruszaj jeszcze tych fusebitów- chociaż przez parę dni. A procesor ma zasilanie? A jaki programator ustawiony w Bascomie? A delay jakie do programatora? A kable dobrze wetknięte? A zwarć nie ma?
Gdybym to robił bez wykorzystania peryferiów MCU, zrobiłbym to tak (albo podobnie, nie pamiętam czy Bascom pozwala na użycie zmiennej w wyrażeniach wait): Potrzebowałbym wygenerować 4 przebiegi pseudo-prostokątu do max 1kHz(sygnał CLK) z możliwością przestrajania częstotliwości. Nie muszą one działać równocześnie. Najlepiej to wykonać tak jak kolega...
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...
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...
skoro umiesz wysłać tekst do drugiej atmegi to jak możesz nie umieć wysłać sobie jakichś zmiennych - oj chyba przegrzało przy ubieraniu choinki więc podpowiem ;) .... można to zrobić na milion sposóbów oczywiście i wszystko zależy od tego jakie to są zmienne, ale np załóżmy że masz zmienną typu Byte. 1. dokonujesz konwersji tej zmiennej na postać String...
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..)
Witam. Może spróbuj tak po wywołaniu przerwania ( u Ciebie co sekunda) Odczytaj termometr DS. A następnie wydaj rozkaz pomiaru temperatury. W następnym przerwaniu odczytasz go o tak w kółko.
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...
Daj filtr dolnoprzepustowy RC na wejściu ADC
Albo masz zamienione linie SCK i SDA :) , jeśli masz baterie włożoną, to sprawdź czy na pinie 3 masz 3V. Jak nie to podepnij go do masy. 100n ceramik na zasilaniu tuż przy układzie jest mile widziany. Ja bym obstawiał na hardware.
:arrow: Mictronic: Predkosc transmisji to 9600! Ponizej wklejam wycinki mojego programu do obslugi tego modulu: '------------------------------- ' modul RFiD ' ' 9600.1.0 ' dane 0xff,x,x,x,x,x,crc8 '------------------------------- {...} $baud = 9600 ' predkosc transmisji Config Serialin = Buffered , Size = 100 ' rozmiar bufora {...}...
Witam Ustaw 4 jedynki. Pozdrawiam
Przeanalizuj swoje odwołania poprzez GOSUB. Masz na 100% zapętlone i stos ci się przepełnia. Najpierw piszesz Gosub Standby a potem w tej procedurze Gosub Glowne , a tam znów Gosub Standby w jednym z warunków. I tak w kółko program sobie skacze i po dwa bajty na stos.
Dopiero jak się wgra bootloader, jeśli go brak trzeba przez ISP.
Skoro kolega napisał już taką wersję jak przedstawił w tym temacie, to poradzi sobie i z tą wersją. Trzeba tylko ruszyć głową - zwłaszcza, że powyżej opisałem całą ideę działania...
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...
Jest też polecenie Shift.
hmmm no ja to robiłem wtedy w Bascomie mniej więcej tak: ustawiałem sobie tak któryś Timer, żeby przerwanie wykonywało się powiedzmy 64 albo 128 czy ze 200 razy w ciągu czasu trwania jednej połówki czyli w trakcie ok 10ms tak? Gdy pojawiło się przerwanie INTx to odpalałem ten Timer, który zaczynał tykać i wykonywać przerwanie tyle razy ile ustalonych...
Po pierwsze dodaj dyrektywę informującą kompilator z jakiego zegara korzystasz. Po za tym w przerwaniu nigdy nie używaj opóźnień bo to podstawowy błąd.
Witam Dokonałem tej zmiany i także wyrzuciłem zmienna S na Lcd i dalej program nie działa tak jak bym chciał. ................ Jest ok zmieniłem znak ''<" i działa . Do swojej podstawki programującej mam podłączone 2 przyciski do pin d.0 pierwszy do pind.1 drugi gdybym chciał zmieniać progi załączania pind.7 tymi przyciskami (czyli regulować temperaturę...
Pomysł nie jest zły. Częstotliwość rzędu 400Hz (50-1kHz zależnie od źródła, niektórzy podają że im niższa tym folia dłużej żyje) Indukcyjność zależy jakie prądy chcesz żeby płynęły przez transformator. Tutaj jest spora dowolność. Może zobacz jak bedzie działać z ~1mH na stronie pierwotnej. Rdzeń o AL=60 moze sie okazać trudny do nawinięcia (mnóstwo...
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
z góry przepraszam moderatorów za brak edycji tylko nowy post -------------------- kod z sampla bascomowego $regfile = "m16def.dat" ' specify the used micro $crystal = 4000000 ' used crystal frequency Wait 2 Config Graphlcd = 128 * 64sed , Dataport = Portc , Controlport = Porta , Ce = 5 , Ce2 = 4 , Cd = 1 , Rd = 2 , Reset = 3 , Enable = 0...
LCD podłączony pod port D, z portu B biorę zasilanie. Eeeee mam nadzieję że to z tym B to błąd...... port ma wydajność 20mA a ty ciągniesz z niego całe zasilanie? Może jeszcze dopowiesz że podświetlanie wyświetlacz też ma?
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...
Jeśli nie wykorzystujesz tych samych pinów co kwarc zegarkowy to nic się nie będzie gryzło... O ile dobrze pamiętam wystarczy podpiąć kwarc 32,768kHz bez kondensatorów pod TOSC1 i TOSC2... Raz po uruchomieniu uC odpalasz timer2 w trybie asynchronicznym i tylko włączasz albo wyłączasz przerwanie od przepełnienia... Ustawiasz preskaler tak żeby przepełnienie...
Owszem, pewnie po zmianie czasu działałoby lepiej. Ale wiesz, warto uczyć się na doświadczeniu innych. Mnie kiedyś ten sposób pokazał na elektrodzie, przekazuję go więc dalej.
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...
W ogóle nie masz jakiejkolwiek obsługi tych "duchów". Tak więc nie tylko trzeba je minimalizować, ale w ogóle jakoś obsługiwać. A robi się to tak że się najpierw wyłącza poprzednią cyfrę, a potem dopiero załącza kolejną. Najprościej to po prostu przed tymi wszystkimi Selectami ustawiaj Portb i Porta w stan nieaktywny (nie wiem jaki on jest więc nie...
Heh :D Zobaczyłem, że właśnie to ty mi pomagałeś xD Ale teraz mi wszystko ładnie wytłumaczyłeś ;P Wtedy chyba coś chumorek nie dopisywał xD A i wielkie dzięki za tamte programy :D ale coś ci pokaze: If Xw < 20 Then : If Xw > 0 Then : If Yw < 15 Then : If Yw > 0 Then Klawisz = 81 : End If : End If : End If Coś takiego...
Automatykon - czy Ty przeczytałeś mój wcześniejszy post w tym wątku? Przecież problem masz tam rozwiązany. teedd
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...
$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ć...
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...
Witam Nie wiem czemu po dodaniu do kodu serw mikrokontroler zaczyna zachowywac sie kompletnie "niespodziewanie" Generalnie Atmega chodzi na kwarcu 16K obsługuje wyświetlacz alfanumeryczny i 11-Czujników (1wire) Zrobiłem małe menu ,po przejściu do odpowiedniej zakładki uruchamiane jest pierwsze 8 czujników albo gdzie indziej inne 3 , jest też zakładka...
Na moje oko Enable Communication to 0x70 czyli 112d. Może masz niewłaściwą prędkość RS-a. Włączony podział zegara przez 8 czy coś.
Na temat "wieszania" się lcd przy silnych zakłóceniach elektromagnetycznych była na EL jakiś czas temu dłuższa dyskusja. Niektórzy z uczestników sprawdzili że jedynie odłączanie zasilania LCD co jakiś czas powoduje ponowne zadziałanie LCD po zawieszeniu. Normalny reset czasem nic nie daje. Nie znam się na samochodach, ale chyba przetwornica od lamp...
Wiec tak: W ogóle wyrzuciłbym zmienna/flagę F. Nie jest potrzebna tutaj. W programie głównym zamiast sprawdzania F, sprawdzaj A, czyli warunek IF z przerwania przenieś do programu głównego, łącznie z zerowaniem A. W przerwaniu zwiększaj tylko A. Zamiast: If F = 1 Then Cls Locate 2 , 1 Lcd "przerwanie" Wait 1 Cls F = 0 Enable Int0 End If zrobilbym...
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.
A jak skofigurowałeś UART ?
Problem rozwiązany. W kodzie brak przemiany stopni .
o to mi chodzilo :) dzieki
[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]
Witam. część kodu z Bascoma (D zadeklarowane jako Word) Input "coś tam.. " , D Waitms 20 Writeeeprom D , 1 w procku "8535" bez problemów zapisuje daną liczbę. Po wymianie procesora na Atmega 16 lub 32, już nie zapisuje tej liczby (kompilator nie zgłasza żadnych uwag). "Po omacku" zauważyłem, że w w/w prockach działa dopiero po dodaniu jeszcze jednego...
Jeżeli podłączysz kondensator do minusa jak jest to w EDW to nic nie uwalisz , zegar tylko będzie chodził szybciej.Zmniejsz wartość oporników na 1 kohm. i sprawdź co ci odczytuje procesor.
no to ci nie pomogę a jakiś skreen to może coś poradzimy albo wyświetlacz podłącz na inny port
chyba nie zrozumiales do konca jak dziala to urzadzenie. Masz 2 diody nadawcze po lewej i po prawej. Na srodku jest odbiornik. 1. nadajesz dioda lewa z czestotliwoscia 36khz (jak uzywasz tsop1136), nastepnie czytasz czy czujnik wykryl przeszkode jak tak to ustawiasz 1 na koncowke i zapalasz prawa diode signalizujaca, jak nie to najlepiej ustaw 0 na...
Witam ! Wyłącz JTAGa. Pozdrawiam. Stefan
Poniato Dzięki - jestem poczatkującym
Dlaczego do bufora 32 znakowego wpisujesz 64 znaki? Lekko zmodyfikowałem funkcję ReadUart, aby wypisywała zmienną buf: Jakbyś jeszcze kończył string w miejscu, gdzie skończyły się dane, to nie wypisywałyby się śmeci. Coś w tym stylu: [syntax=cpp] ret = ReadFile(hPort, buf, len,&retlen, NULL); buf[retlen] = 0; cout << buf; [/syntax] Tak w...
Panie Piotrku (Zumek)... Obecny :wink: Proszę o więcek danych , a najlepiej o załączenie kodu źródłowego i wynikiwego (BIN lub HEX).Wtej chwili , pracuje u mnie wyświetlacz 16 * 2 , którym steruje program oparty na proponowanej bibliotece. Piotrek
Z tego fragmentu nie wiadomo czy używasz przerwań. Może wywołujesz jakieś przerwanie i jego obsługa zajmuje tyle czasu , że przychodzi następne przerwanie i program się pętli ( jedyne co robi to obsługuje przerwanie )
Nie działa to znaczy co dokładnie się dzieje?
Figure 26 shows the external reset operation and timing. The RST pin is set to logic 0 for a minimum of 20 ns. The RST pin is then set to a logic 1 state, thus starting the initialization sequence, which requires 1024 system clock periods. The external reset is especially useful in applications where there is a delay between the DSD1794A power up and...
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?...
Problem jest w sprzęcie a nie w programie. W układzie brakuje kondensatorów ceramicznych 100nF na pinach zasilających uC, LCD, czujnika, wejściu ADC. Nie widzę też filtru na AVCC oraz jakiegokolwiek tantala/elektrolita na zasilaniu. Popraw zasilanie a zamiast analogowego czujnika użyj cyfrowego np DS18B20 na 1Wire.
1. W swoim kodzie wyżej dodałem deklaracje zmiennych - przepisz je; 2. Wyświetlaj odebrane dane gdy Flaga = 1; 3. Sprawdź taktowanie uC !!! Zrób miganie diodą i sprawdź, czy czasy włączenia i wyłączenia będą prawidłowe; 4. Napięcie na RX jest wartością średnią (zmiany poziomów podczas nadawania danych).
Bascom nie obsługuje jeszcze sprzętowego I2C :(
Mam podobny problem tylko moja wiedza jest znacznie mniejsza. Czytam i czytam i już mnie coś trafia. Jak wogóle w Bascomie ustawić atmega16 na slave?? Czy moge wykorzystywać dowolne piny czy tylko pc1 i pc0??
W swoim programie zapragnąłem użyć instrukcji waitms i waitus przypisując im wartość zmiennej zależnej od pewnego wyniku działania. Ku mojemu zdziwieniu instrukcje te nie reagują na zmiany parametru wait w czasie programu. Czy tylko ja coś źle robię czy taki jest ten bascom?
Jak to mówią diabeł tkwi w szczegółach... $crystal = 8000000 $regfile = "m16def.dat" Config Portb = Output Config Pina.1 = Input Do If Pina.1 = 1 Then Reset Portb.6 End If If Pina.1 = 0 Then Set Portb.6 End If Loop End
Co do JATAG to jak odczytuje fusbity to nie ma przy nim ptaszka w AVR Burn-O-Mat. Tak więc zakładam, że jest wyłączony. Może to problem związany z konfiguracją portów przez BASCOM???
No cóż, Bascom umożliwia wstawki w asemblerze, co może skrócić obsługę przerwania...
Jest taka komenda SpiOut, zobacz w manualu jak to oprogramować i powinno wszystko być jasne. Powinieneś wysłać dwie 8-bitowe ramki ale to już wynika z budowy Twojego potenciometru. Pozdrawiam
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
Witam, tworzę sterownik oświetlenia 10 lamp. Każdą lampę chcę sterować sygnałem PWM, jednak uC ATmega16 ma 3 kanały PWM. Dlatego w projekcie chciałbym stworzyć programowy PWM, dla każdej z lamp oddzielny. I moje pytanie jest takie - czy ATmega16 podoła temu zadaniu, tzn. wystarczy jej pamięci na 10 programowych kanałów PWM? A jeżeli nie ATmega16 to...
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ć...
To nie lepiej wysyłać z 3 LED, 3 kody RC5 i odbierać je 3 czujnikami?? LEDy podłączasz wtedy do 1 tranzystora a kody odbierasz poszczególnymi czujnikami. Układ jest wtedy nie wrażliwy na inne nadajniki IR ,takie jak np PILOTY. hyhyhy teraz to kolega zaszalał ;) - 3 diody nadawcze i aż 3 czujniki ;) szok. Toż już by można było sobie w głowie pomysł...
Otwieramy helpa i lektura obowiązkowa: CONFIG INT ENABLE DISABLE ON INTERRUPT RETURN SET RESET IF...THEN...ELSE No i nota katalogowa ATMega16. A w Wikipedii temat: transoptory. Do dzieła!
atmega16 bascom atmega16 eeprom atmega16 ds1820
zmiana formatu obrazu elektrobim napięcie renault tuleja
schemat podłączenia connects2 citroen xsara pompa
Brak dźwięku przez HDMI-USB-C na Debianie 12 Poszarpane krawędzie liter w druku wielkoformatowym - przyczyny i rozwiązania