Może być Timer0 inaczej skonfigórowany np: 8000000/256 = 31250Hz Load Timer0, 250 'zapis w Bascom ' TCNT0 = 6 'doliczy 250 31250/250 = 125Hz = 8ms ' występuje przerwanie Timer0 jest ośmio bitowy, więc może zliczyć od 0 do 255 czyli 256 impulsów. W przerwaniu wpisujesz to co ma być wykonane. 256 - prescaler 250 - dodatkowe zliczanie wyprzedził mnie bart-projects
Zajrzałem do skompilowanego pliku i widzę że kompilator w ogóle nie używa tu R2 i R3 więc mi je zostawił ;) Od pewnego czasu w Bascom do rejestrów można się odwoływać prosto z kodu. Ciekawe którą wersję Bascom masz. Pewnie znowu schody... U mnie program się kompiluje na 96% [syntax=vbnet] $regfile = "attiny13.dat" $crystal = 9600000 $hwstack = 16 $swstack...
(...) osobnym PinX i oczekuj na stan niski ADCx2 aż do spełnienia tego warunku. Jeśli na ADCx2 napięcia równe 0 mrugnij diodą Led1 jeden raz przez 300ms, wyłącz Przekaźnik1 na PinX Po czym wróć do góry procedury, do oczekiwania na napięcie na ADCx1 To właściwie tyle. Dziękuję za uwagę i wszelaką pomoc. Witam serdecznie na forum! Chętnie pomogę Ci przygotować...
spróbuj tak : Config Adc = Single , Prescaler = Auto Start Adc Dim N0 As Word N0 = Getadc(0) w N0 masz wartość napięcia gdzie 1023 to 5V a 0 to 0V
Może zanim zapomnę o czym chciałem napisać a nie jest najważniejsze, ale dla Ciebie ważne. Tak w telegraficznym skrócie -> USART w AVR ma możliwość włączenia jakby podwójnej prędkości/próbkowania (to samo SPI). Bit ma skrótowa nazwę U2X. Przy taktowaniu 16MHz, jak prawie każda płyta Ardu, to bez U2X predkość 115200 miałaby za duzy błąd który niby maksem...
O co mi dokładnie chodzi: W helpie Bascom jest napisane, że w przypadku kości 8535 mam do dyspozycji preskalery 1, 8, 32, 64, 128, 256, 1024, a dla kości M103 1, 8, 32, 64, 256, 1024. Ja zaś posiadam kość M32 i w PDF, który dotyczy tego mikrokontrolera jest tabelka na 127 stronie, która zawiera w sobie jakby wykaz dostepnych częstotliwości, ktorymi...
W BASCOM-ie jest wiecej takich niuansow. Odkrywanie odpowiedzi na takie dziwne pytania jest czasami bardzo denerwujace... W helpie jest cos napisane a w praktyce bywa ze dziala odrobine inaczej albo i calkiem inaczej... Jakis czas temu glowilem sie nad dokladnie tym samym problemem. Wymyslilem jaka jest odpowiedz z czego bylem bardzo dumny :-) Ponizej...
wystarczy nieco przejrzeć helpa bascoma: [syntax=basic4gl]Config Adc = Single , Prescaler = Auto 'Now give power to the chip Start Adc 'With STOP ADC, you can remove the power from the chip 'Stop Adc Dim W As Word , Channel As Byte Channel = 0 'now read A/D value from channel 0 Do W = Getadc(channel) Print "Channel " ; Channel ; " value " ; W Incr Channel...
A może wyłumaczyć mi ktoś tak jaśniej niż whelpie bascoma ;) co to jest ten prescaler i co on dzieli. Może tak po kolei jak twój program widnieje: 1. Jeżeli PORTB jest przeznaczony do obsługi LCD to nie konfiguruj go w ogóle w stylu jaki podałeś w pierwszym poście. Config Portb = &B11111111 : Portb = &B11111111 ===> źle!!! Może to powodowac zakłócenia...
Nie widziałem wcześniej, że już na to wpadłaś. Twój się kalibrował tylko w jedną stronę a ten powinien w obydwie (ale nie testowałem) ;) [syntax=vbnet]$regfile = "attiny13.dat" $crystal = 9600000 $hwstack = 2 $swstack = 0 $framesize = 22 Config Adc = Single , Prescaler = Auto , Reference = Avcc Dim Mem_adc As Word , New_adc As Word Dim Krok As Byte...
Do Autora wątku: Proszę. Nie taki diabeł straszny. Nie napisałeś jaki to procesor więc napisałem przykład dla Mega8. Funkcja odczytuje ADC(0-5) z włączony ADLAR czyli tylko osiem bitów. Wynik od 0 do 255. Zapewne działa nawet w symulatorze. To taki podstawowy. Można nie czekać a ustawić przerwanie, ale to pewnie jeszcze nie dla Ciebie :D Wpisz w Google...
Chcę napisac własny program z wykorzystaniem Timerów. Na początek proszę o wytłumaczenie dlaczego w poniższym programie: 1. wykorzystano podzial częstotliwości zegara (po preskalerze 256) 250/125 zamiast wykonac jedno dzialanie? 2. uzyto wartość początkową Timera0 = 250 przed Petlą do Loop End . O ile wyjaśnienie podane przez Tomq jest błędne(!) Load...
To już załatwia bascom - jest ustawione na Auto. co do sedna, sprawdziłem dziś na swoim układzie kanały 0-7 ADC następującym programem: [syntax=basic4gl] $regfile = "m2560def.dat" $crystal = 16000000 Config Adc = Single , Prescaler = Auto , Reference = Avcc Dim Wart_adc1 As Word Dim Wart_adc2 As Word Start Adc 'AVCC bezpośrednio do 5V, AREF w powietrzu,...
Może zaczniesz od czegoś łatwiejszego , będzie prościej i mniej stresująco . No, nie żartuj z faceta!. Co może byc łatwiesze (?) ? miganie diodą ?... Spójrz na jego ?credentials? w lewym oknie. Gośc jest tu około 10 lat, więc pewne rozeznanie w temacie posiada i ?kurs? z miganiem diodą z pewnością dawno ukończył. Może potrzebuje troche odmiennego spojrzenia...
Znalazlem jakis stary programik.... odczyt 2 kanalów ADC z częstościa 100 razy na sekunde... Analize pozostawiam Tobie...(podpowiem że Help wszystko wyjaśni) Pozdrawiam $regfile = "m8def.dat" $crystal = 11059200 $baud = 19200 Config Adc = Single , Prescaler = Auto , Reference = Off Config Timer1 = Timer , Prescale = 256 On Timer1 Pomiar Enable...
(A). Czy w Compare0a = 186 mogę wstawić liczbę w zakresie 0-255? (B). by uzyskać interwał =~100ms to 9 600 000Hz/ 1024 /37,5 (połówek pewnie nie można używać wiec zaokrąglę do 38 to będzie 247Hz (C). natomiast dla interwału 50ms to 9 600 000Hz/ 1024 /75 to będzie 125Hz czy dobrze to rozumiem? Nie dobrze , .. (at)A. -formalne/teoretycznie możesz w Compare0a...
Musisz wiedzieć że ADC Atmegi ma 10Bit czyli w uproszczeniu skalę do 1023 Kiedy jako napięcie odniesienia dla ADC użyjesz napięcia zasilania procesora (AVCC) to dokładność pomiaru wynosi : 5V/1024 czyli -> 5000mV/1024 = 4,88mV na jedna podziałkę ADC. Nie napisałeś jaki masz ACS a wystepują w wersjach 5A, 20A i 30A Zakładając że masz ten najczulszy 5A...
No więc jeśli stosujesz M8 to masz gotowe rozwiązanie powyżej. A... zapomniałem napisać, że potrzebny dzielnik napięcia. Może być przez 2 i jako napięcie odniesienia podać AVCC (o ile AVCC=5V). $crystal = 4000000 $regfile = "m8def.dat" Config Timer1 = Pwm , Pwm = 10 , Prescale = 8 , Compare A Pwm = Clear Down 'Konfiguracja Timera Config Portd...
Witam , wklejam kod jaki udało mi się wypocić. Miało być tak pięknie a wyszło jak zawsze :-( Ten twój kod jest oczywiście błędny. Po pierwsze, jeżeli stosujesz napięcie referencyjne wewnętrzne, to dla AtMega 8 wynosi ono 2.56V. Zatem poziom napięcia mierzonego podanego na dowolny pin ADC nie może przekroczyc tej wartości. Jeżeli jednak ten warunek...
Witaj Na razie układ działa prawidłowo i na pewno jest jakaś zwłoka, którą z czasem będę chciał zniwelować o ile będzie to konieczne, teraz chciałbym się skupić nad programem do opóźnienia z którym mam najwięcej problemów, Masz problemy bo cały program masz napisany pod priorytetem obsługi LCD a nie zamierzonego celu. LCD potrzebujesz tylko aby ustawić...
Jak zwykle czasu nie ma, ale nie mogłem się powstrzymać. Nakręciłem pierwszy klip - ahahahaha :D No musiałem się pobawić edytorem. Efekt to półtora minuty magii :D Ahahaha miałem kupę zabawy z tym :D Przy okazji możesz zobaczyć jak się używa wbudowanego symulatora by zadawać wartości ADC ;) Twój pomniejszony kodzik też poniżej, tylko używając poza symulatorem...
Mam problem jestem początkujący napisałem program który ma za zadanie regulować włączanie wiatraka i czas z jakim ma dmuchać , jednocześnie mierzy temperaturę i nie działa tak jak powinno : Temperatura pokazuję co jakiś czas błędny pomiar np 124 , 32 , 98 procek się resetuje chińskie znaki raz na jakiś czas w programie można było ręcznie zmieniać czas...
Sprawdź miernikiem napięcie podawane z LM35 na ADC. Przepisałem ten kod tak by był przejrzystszy. Przy okazji zaoszczędziłem 8% pamięci. To nieistotne. Istotne natomiast jest to, że teraz widać, że układ wyłączy się jeśli odczyt na ADC będzie w zakresie 250-300. Powyżej lub poniżej tego zakresu krążek będzie świecił. [syntax=vbnet]'Program "elektronicznej...
Robi się to prosto na wejściu ICP Atmegi, mierzysz czas pomiędzy kolejnymi zboczami, raz jest opadające, raz narastające itd.. potem to tylko interpretacja wyników, liczenie bitów i po odliczeniu 64 bitów z transmitowanych 66, bo dwa ostatnie dla uproszczenia procedury pomijasz. wyświetlasz na LCD lub wysyłasz po RS232 do komputera, a tam wyświetlasz...
Witam. Robię mini komputer pokładowy. Funkcje to pomiar poziomu paliwa, temperatury w i na zewnątrz, i napięcia aku. Na razie mam paliwo i jedną temperaturę. Poziom paliwa symuluje na razie potencjometrem. Do pewnego poziomu fajnie wypełnia mi kolejne kwadraty, jednak gdy zapełnię pierwszą linię, i przekręcę jeszcze trochę potencjometr, to wypełnia...
] Gdybym chciał jednak mierzyć załóżmy do 1kHz to wymaga aby zliczać przepełnienia? Dlatego napisałem..."Nie znaczy to jednak..." w złym obliczeniu 1 sek wartość wynosiła 61630, przy prawidłowym obliczeniu wynosi 34 286 uwzględniając czas 1sek, częstotliwość taktowania 8MHz i prescaler 256. Przecież czas (1 sec.) odmierzasz timerem0, który jest 8-bitowy...
Niebardzo rozumiem o co dokładnie tu chodzi ale: 1. Każde wystąpienie Lcd Chr(3) powinno być Lcd Chr(3); żeby nie były dodawane znaki nowej linii. 2. Żeby modulo 10 się obliczało poprawnie, to zamiast Dim Volt_d As Byte musi być Dim Volt_d As Word To jest związane z tym, że BASCOM nie potrafi rzutować typów z większego (Word) na mniejszy...
No to coś napisałem na AVRStudio 4.05.0.181 (na kolanie) :) . Co prawda na ATmega8 , ale przeportowanie to pestka(niektóre wektory przerwań do skasowania/zmiany nazwy i "2313def.inc" zamiast "m8def.inc" , prędkość kwarcu Xtal też do poprawki...), raczej tu chyba nie ma rozkazów niezaimplementowanych w AT90S2313 . ;included in next file - line ".device...
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...
Witam Potrzebując poznać dane klawiszy z pilota napotkałem wiele problemów związanych np. z brakiem timera 16 bit w małych mikrokontrolerach 8-DIP (Attiny85), śmieci, lub braku transmisji z komendy GETCR5 (A255,K255). Na szybko zbudowałem układ na Attiny24A (ma timer 16bit), TSOP31236 i LCD po I2C (PCF8574). Wyjście z TSOP31236 koniecznie trzeba podać...
http://obrazki.elektroda.pl/7139682100_1... Witajcie Wlasciwie jest to moj pierwszy temat na forum wiec prosze z gory o wyrozumialosc. Przepraszam rowniez, za brak polskich fontow, ale pomimo prob wielu nie ogarniam wiekszosci ogonkow z racji lokalizacji :/ Przyszly swieta, czas urlopu i odpoczynku... Niestety wraz ze swietami przybyla...
https://obrazki.elektroda.pl/8115173800_... Witam, w ramach konkursu na urządzenie pomiarowe przedstawiam bardzo prosty miliamperomierz do testowania gniazd usb w smartfonach i innych urządzeniach. Konstrukcja jest śmiesznie prosta, oparta na mikrokontrolerze attiny13 i zawiera tylko kilka elementów niezbędnych do działania. Miernik...
Program napisany w BASCOM AVR i wyskakujące 3 błędy , mogę wiedzieć dlaczego one wyskakują podczas kompilacji , poniżej zamieszczam kodzik. 'podwójny woltomierz i amperomierz (dwa kanały pomiaru napięcia i dwa kanały pomiaru prądu 'UWAGA _ PONOWNE WGRANIE PROGRAMU SKASUJE WARTOŚCI WSP KOREKCJI Z PAMIECI EPROM '---------------------------------------...
Zacznijmy od tego, że w Tiny2313 nie ma ADC więc tu pytanie jest bezprzedmiotowe :D W Tiny261 timery są ciut nowsze niż w przypadku Mega8 i Tiny13. Wystepują tam już podwójne rejestry dla Timera0. Są to odpowiednio A i B czyli COMPARE 0 A i COMPARE 0 B. Zero odbosi się właśnie do Timera 0 Ogólnie dla nowszych prockow AVR jest to normą że tych rejestrów...
Pod tym linkiem [url=https://bart-projects-forum.cba.pl/... znajdziesz dwa, na pewno działające, kody do QM5883L i HM5883L. Te moduły nie są zamienne wprost i dlatego kody są dwa. Mogę tak napisać bo to moje kody które sam napisałem i sprawdziłem :D Mam gdzieś z tego film. Jak znajdę to wrzucę. Wszystko było uruchamiane...
(...) żdy zasilany z osobnego źródła i odseparowany transoptorami PC817. Ze względu na ich szybkość oraz niską wartość prądów je sterujących 1mA zegar musi być obniżony do 10KHz ma. Chcę zrezygnować z polecenia: waitus 100 w zamian zrealizować to w obsłudze timer0 a w główną pętle przeznaczyć na inne cele. Rozumiem, że chcesz optymalizować swoje oprogramowanie...
Pierwsze stosuję procki które maja oporniki . Stosuję zasadę minimalnego połączenia , żeby była zachowana . Zasilanie musi pochodzić ze wspólnego źródła ale zawsze procesor musi mieć oddzielny stabilizator . Napięcie referencyjne robię tak jak zaleca to producent procka (chyba wie co produkuje) Zawsze stosuję 7805 bo wiem że jest OK i mam zawsze 5.02V(byle...
Nie wiem na które pcb patrzysz , to ostatnie do pełnej wersji z pomiarem prądu i napięcia ,patrzę i widzę że jest OK . pin40 i pin39 są podpięte do dzielnika kondensator żeby nie pływał pomiar zbytnio. nie widzę tego o czym piszesz . Wieczorem sprawdzę jeszcze raz i podam zaktualizowane . Ok jest wieczór więc zamieściłem na 2 str. schemat i pcb w eagle...
Witam Czy potrafi któryś z was przekonwertować taki fragment kodu w BASCOM na C (Atmel Studio 6) ? Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc
Dla osób które chcą wykonać ten zegar od razu podpowiem, że smużenie to normalka. Proszę spojrzeć na program bascom autora. Prescaler 1, taktowanie wewnętrzne procesora 8Mhz. I proszę sobie obliczyć częstotliwość multipleksowania wyświetlacza. Przecież to idzie praktycznie na maksa. Powinno się zwiększyć preskaler i wpisać wartość początkowa do timera....
Mam pytanko dlaczego według was predkosc wynosi 100KBit/sek. według noty katalogowej wyglada to tak: bit 7-6 SJW: Synchronization Jump Width Length bits <1:0> 11= Length = 4 x TQ 10= Length = 3 x TQ 01= Length = 2 x TQ 00= Length = 1 x TQ bit 5-0 BRP: Baud Rate Prescaler bits <5:0> TQ= 2 x (BRP + 1)/FOSC wiec wpisując wartosc Cnf1 , &B10001001...
Pokombinuje wtedy z tymi prescalerami i fuse bitami. Póki co w kodzie i w mkAVrcalculator cały czas mam ustawione na 8MHz, a prescaler ustawiony na 8,natomiast slow SCK mam ustawione na >187,5 kHz Na wyświetlaczu pokazuje mi to samo co Tobie, ale nie słychać ani nie widać w rzeczywistości ,że ta prędkość się zmienia.
Witam, Proszę o wskazanie błędu, nie chce mi skompilować programu - błąd w bascomie wyświetla w ostaniej linijce czyli w komendzie END - nie mam już pomysłu co jest nie tak [syntax=vbnet]$sim $regfile = "m8adef.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , E = Portb.6...
Dziękuję za podpowiedź - 255x255 to już lepiej :) Bart, może zechciałbyś pomóc mi w kolejnym problemie ? Podłączyłem potencjometr 10k liniowy - ścieżka do GND i VCC (3,3V), suwak do PA7 (ADCA7), napięcie mierzę oscyloskopem. Kod jest taki: [syntax=vbnet] Dim OdczytADC As Integer 'setup the ADC-A converter Config Adca = Single , Convmode = Unsigned ,...
Witam. Ja przetwornik ADC ustawiam następująco: Config Adc = Single , Prescaler = Auto , Reference = Avcc lub Internal
Witam, sprawa się wyjaśniła. Nie wystarczy Config Adc = Single , Prescaler = Auto , Reference = Avcc Żeby to działało to jeszcze aref (teoretycznie nie używany) nie może być umasiony. A u mnie był. Po uwolnieniu aref od masy było lepiej, ale szumiało. Ostatecznie połączyłem Aref kablem do +5V, zmieniłem [...] Reference = Avcc i jest dobrze. dziękuję...
Na pewno do samego generowania dźwięku musisz użyć timera, żeby czas był porządnie odliczany, na waitach się tego zrobić nie da. Poza tym dźwięk będzie oczywiście podle mizerny, ale zrobić się to da. Dobierz porządany zakres częstotliwości i policz które timery wykorzystasz, jaki prescaler i kwarc
Też mi pomoc :) Piszę właśnie programik na attiny13 więc proszę : $regfile = "ATTINY13.DAT" $crystal = 9600000 Config Adc = Single , Prescaler = Auto , Reference = Avcc Config Pinb.0 = Output Config Timer0 = Pwm , Prescale = 8 , Compare A Pwm = Clear Down Dim A As Byte Do Incr A Pwm0a = A Waitms 10 Loop End
A jest możliwość zapisu danych w do MS Excela lub do csv w postaci tabel? Dlaczego 11 bajtów przy czterech naraz (a nie 8)? Niestety nie ma możliwości zapisu do excel'a, i ja nie potrafie tego zrobić. Wykres można zapisać do pliku *.grf Po otwarciu go w notatniku wygląda tak: Kurve 255 1462 0.00000000000000E+0000 0.00000000000000E+0000 9.99999999999446E-0004...
Zrobiłem wszystko jak Napisałeś: -zmieniłem zmienną G na long -zmieniłem prescaler ADC z Auto na 128 -zaznaczyłem w komentarze 4 linijki w mcs.lib, potem skompilowałem w managerze Wyniki dalej niczym się nie różnią od poprzednich :cry:
prescaler atmega prescaler ustawi prescaler atmega8
tania dioda laserowa naprawa regulator model agregat prądotwórczy polecać
kabel brake radio citroen interfejs diagnostyczny
Bosch UniversalDrill 18V-60 – głośna praca i nagrzewanie, przyczyny usterki Opinie o suszarkach Candy – modele slim, EasyCase, głośność, konserwacja, forum 2024