Po zapoznaniu się z datasheet Atmegi 8 (str.186-188 oraz rejestrów na str.309) troszkę mi się rozjaśniło. Oto poniższy kod który stworzyłem na podstawie powyższego. ....... Sprawdzę działanie w praktyce jutro. Gdyby było coś jeszcze w nim nie tak to proszę o reakcję :) \] O to właśnie chodziło! Dodam jeszcze: -zwróc uwagę na rejestr ADUMX. Trzy górne...
Witaj. Zacznij korzystać z bezpośredniego ustawienia rejestrów. Zobacz w dokumentacji mikrokontrolera rejestr ADMUX i bity REFS0 i REFS1 oraz tabelkę: Table 24-3. Voltage Reference Selections for ADC
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...
Spokojnie 2x 1800mAh starcza na długo. Regulator mam kupny i nie ma ustawień odcinania napięcia dla lipo. Regulator szczotkowy wodoszczelny zalany nie mam jak się bawić. A w Bascom mam napisać: ADMUX = B10010000 ? A dokładność to "± 2 LSB Absolute Accuracy"
Jeśli piszesz w BASCOM to wystarczy polecenie GETADC z parametrem liczbowym określającym numer kanału.
Bascom to taki prostacki jezyk w ktorym wpisujac zmienna=getadc(0) powoduje ze ta komenda za mnie ustawia multiplexer wejsciowy na wejscie 0, uruchamia konwersje i czeka az sie skonczy Co w tym prostackiego? Patrz co robi: Dlatego potrzebuje opis co po kolei wpisywac do ktorego rejestru aby ustawic multiplexer wejsciowy, wystartowac konwersje, potem...
To nie jest wcale takie skomplikowane. Musisz włączyć zezwolenie na przerwanie od zakończonej konwersji. Wtedy kiedy wprowadzisz uC w stan Iddle albo Noise canceler start konwersji nastąpi automatycznie. Wyboru kanału/wejścia dokonuje się rejestrem ADMUX. Niestety jest w nim też wybór źródła napięcia odniesienia a nie pisałeś czego chcesz użyć. Każde...
Dzień dobry, Chciał bym zrobić sobie prosty oscyloskop tyle że z wykorzystaniem uC Atmega8. Czy mógł by mi ktoś przetłumaczyć poniższy kod na język Bascom, lub chociaż objaśnić jego działanie? Kompletnie nic z tego nie rozumiem... Za przetłumaczenie na język Bascom oferuję 500pkt
Nie zmienia, bo masz błąd w innym miejscu. Dokładnie to miałem na myśli-że błąd jest gdzieś indziej. Zastanów się, co oznacza nazwa trybu CTC (?) – w ang. jest to ‘Clear Timer on Compare’ (pol. - wyzeruj zawartość licznika/timera, gdy jego zawartość jest równa wyznaczonej z góry i ustalonej, bądź to wyliczonej jakiejś wartości w zmiennej...
Możesz robić wpisy do rejestrów przez zwykłe przypisanie np: Admux = &B01100001 Adcsr = &B11100101 i tak samo z nich odczytywać, np: A1 = Adch Locate 1 , 1 : Lcd A1 Dokumentacja w dłoń i do dzieła ;)
dlaczego nie chce mi skompilować tego wiersza? Dodano po 1 Dobra obecnie kod wygląda tak [syntax=c]#define F_CPU 4000000L #include <avr/io.h> #include <util/delay.h> #include <stdio.h> #define POTENCJOMETR PA0 //definicja ADCIN (wejście ADC) #define KLAWISZ PC0 int LICZBY[10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F,...
Pisane na szybko i po imprezie więc ma prawo szwankować (kanał ADC1): $regfile = "m32def.dat" $crystal = 1000000 '$prog &HFF , &HE4 , &HD9 , &H00 ' generated. Take care that the chip supports all fuse bytes. Mcucsr = &H80 'wyłaczanie JTAGa Mcucsr = &H80 Admux = &B01100001 Adcsr = &B11100101 'albo &B11000101 Config Lcd = 16 * 2 Config Lcdbus...
Witam, po przesiadce z bascom do winavr piszę przykładowe programy w celu poznania C dla AVR, tym razem chciałbym wysyłać po rs232 odczyt z przetwornika analogowego. Używam a328p i po krótkim zapoznaniu się z dokumentacją układu ustawiłem transmisję i adc [syntax=c] #include <avr/io.h> #include <util/delay.h> int main( void ) { UCSR0B =...
A po co mi w C ?ja C nie znam Przeportować z C na Bascom nie duży problem. A ASM na Bascom tez nie. Z Bascom na C tak. Nie chodzi tu o typowe rozkazy, jak pętle itp, to banał. C jest "blisko" sprzętu, taki bardziej assembler, Jeśli w C jest odwołanie do rejestrów np TWI bez problemu przeniesiesz to na Bascom, coś w rodzaju tłumaczenia np z angielskiego...
Witam Piszę sobie prosty program do sterowania triakiem. Na jednym pinie na przerwaniu PCINT0 jest zrobiony zero-crossing Program ma odpalić Triak z zadanym opóźnieniem na pół milisekundy. Przetwornik sobie chodzi w trybie free i ze starszych 8 bitów chce sobie wyliczyć opóźnienie od 0 do 9000 mikrosekund (9 mili). Problem mam z samym przeliczeniem...
Jeżeli wpisałeś "interlan" to kompilator nie wie co to jest, powinno być INTERNAL. Pokaż kod programu. Rzeczywiście bascom nie przyjmuje takiego parametru, widocznie to kolejna jego niedoróbka. W tej sytuacji pozostaje ręczne skonfigurowanie rejestru odpowiedzialnego za napięcie odniesienia. np: dla napięcia 1.1V ADMUX.REFS0=0 ADMUX.REFS1=1 ADMUX.REFS2=0...
masz gotowca, chyba prościej nie można :) 'sterownik do wentylatora na ATTINY15 'PMW - port PB.1 sterowany napięciem z PB.2 '---------------------------------------... '$tiny $regfile = "At15def.dat" $crystal = 1600000 Ddrb.1 = 1 Ddrb.2 = 0 Tccr1 = &B11110010 Admux = &B00100001 Adcsr = &B11100011 '---------------------------------------...
Za pomocą komparatora - nie. Za pomocą ADC w trybie pomiaru różnicowego - tak. Przeglądnij datasheet i sekcję opisującą kanały ADC (rejestr ADMUX)
nie wiem dlaczego nie widac załączników
szeri88 , miałem dokładnie taki sam problem, z tym że w innym ATTINY. Na przykład żeby ustawić Vref=1.1V nie możesz niestety przypisać wartości w taki sposób: REFS0=1 ponieważ BASCOM tego nie kupi. Trzeba podać nazwę rejestru, do którego należy bit, czyli: ADMUX.6=1 To powinno zadziałać. Pozdrawiam Przemotronik
Mam taki problem, bascom wywala mi błąd że ten procesor nie ma adc a dokładnie pisze "can't find HW-register No co Ty , z agrestu spadłeś :?: Ten proce nie posiada ADC , więc ADMUX-a także :D Piotrek PS Zastosuj ATmega8535 , lub "wyższy"
Witam, niestety ale właściwa składnia dla M8 i podobnych to brak w składni refefence lub refefence=OFF ponieważ uC domyślnie startuje z wyłączonym wewnętrznym Vref i wystarczy dostarczyć napięcie na pin AREF. Bit 7 6 5 4 3 2 1 0 REFS1 REFS0 ADLAR – MUX3 MUX2 MUX1 MUX0 ADMUX Read/Write R/W R/W R/W R R/W R/W R/W R/W Initial Value 0 0 0 0 0 0 0 0...
Oczywiście książka, by się przydała bo czas zaoszczędzi ci nieludzko: http://mikrokontrolery.blogspot.com/p/ks... Ale widzę że początek jest niezły, zaraz opiszę co i jak :) Dodano po 11 ADMUX = 0 1. czyli wybrałeś ARef - pytanie czy Twój zestaw ma tam kondensator i czy mozna go wyłączyć jakąś zworką? 2. pin ADC0 masz wolny i nie podłączony...
Chcąc bezproblemowo zmieniać kanały powinieneś zostawić GETADC() i w konfiguracji zmienić na SINGLE . W trybie FREE przetwornik mierzy ciągle (ustawiając flagi przerwania ADI F po każdym pomiarze), a ostatni wynik będzie znajdował się w zmiennej specjalnej ADCD (typu Word ). Jednak zmiana kanału pomiaru jest nieco problematyczna, bo kanały musiałbyś...
Potrzebuję pomocy przy zamianie kodu "RFID Reader", tzn. żeby zamiast wyświetlania kodu karty na LCD uzyskiwać odpowiedni poziom na wyjściu 1z10 i czy jest to możliwe do zrealizowania na atmega8? Chciałbym użyć 8 ostatnich cyfr kodu karty. Posłużyłem się gotowcem, który był już na elektrodzie (dopiero uczę się bascoma i nie wiem jak się do tego zabrać):...
Czytam, szukam, i nic nie rozumiem.... Dodano po 24 Udało mi się ;) Nie wiedziałem że bity w dyrektywie &B liczone są od tyłu ;) [syntax=Bascom]$regfile = "m32def.dat" $crystal = 16000000 $hwstack = 40 $swstack = 16 $framesize = 32 dim adc1 as byte Admux = &B01100000 Adcsra = &B11100100 do kanal1 = adch loop[/syntax] Dokumentacja Atmega32 str. 212 Temat...
Ok coś tam rozumiem ale mam jeszcze taki problem albo prośbę bo nie wiem jak ustawić rejestry w attiny13 Tccr0a Tccr0b Admux Adcsra Adcsrb jakbym chciał pwm 8 bitowy (attiny13) z max częstotliwością tj chyba FAST PWM na pwm0a i pwm0b czyli 9600000/256=37500Hz przy działającym ADC. Reszta ustawień zostaje tak jak jest. To już będzie wszystko. Zacznij...
witam Próbuje napisać program który po wgraniu do atmegi będzie pokazywał napięcie i prąd. 10 bitowa rozdzielczość przetwornika A/D jest dla mnie nie wystarczająca, Postanowiłem sięgnąć po technikę zwaną nad próbkowaniem (oversampling) Atmege programuje w bascomie znalazłem artykuł w nowym elektroniku z 2007 roku opisujący to zagadnienie.Przepisałem...
Możesz w Bascomie załatwić wszystko na samych rejestrach, skoro polecenie Getadc się "gubi": ADMUX=b11010000 ' Vref =2.56 z zewnetrznym kondensatorem, pomiar dla ADC0 ADCSRA=b11000111 'włączony ADC i uruchomiona konwersja, wyłączone przerwania, preskaler na 128 teraz czekasz np 100ms i odczytujesz stan rejestrów ADCH (MSB ) i ADCL (LSB) wyzwalasz następną...
var = GETADC(channel [,offset]) Remarks Offset- An optional numeric variable of constant that specifies gain or mode. This option has effect on newer AVR micro’s only. The offset will be added by the channel value and inserted into the ADMUX register.
Witam :D Dobre wieści :D Czytając i analizując wszystkie Wasze sugestie i uwagi udało mi się zrobić działającą obsługę przetworników. Co prawda pozmieniałem trochę po swojemu ale działa. Najpierw kod później kilka słów wyjaśnienia. dondu później startujemy pojedynczą konwersje, czekamy aż się ona zakończy, wynik wczytujemy na odpowiednią pozycję w tablicy,...
ADMUX=0x40; //Uref-AVCC ADCSRA=0x85; SFIOR&=0xEF; unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input|0x40; ADCSRA|=0x40; while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCW; } void main(void) { unsigned int adc_in[4]; unsigned char i; for(i=0;i<5;i++) { adc_in[i]=read_adc(i) } } W wyniku masz w tabeli adc_in pomiary z 4 kanałów...
Hej, Nie mogę zmusić Atmegi do zliczania tego czasu. Wpisałem polecenia wczytywania czasu z EPROM i zapisu. Różnica jest teraz taka, że co sekundę dostaję: 255:255:255 Kondensator elektrolityczny przed stabilizatorem został wylutowany. Dzielnik zmieniony. Teraz przy 14Vin jest 3,6V na sensorze. 2,56 jest osiągane dokładnie przy 10,00Vin. Niestety Atmega...
W jaki sposób w Bascomie ustawić w ATmega16 przetwornik ADC w tryb pomiaru różnicowego ze wzmocnieniem? Wprost z Bascoma nie można. Jak to zrobić w asemblerze? Prosze o odpowiedź kogoś kto PRZETESTOWAŁ to na sprzęcie! Jak należy rozumiec pomiar różnicowy adresowany w ADMUX: MUX4:0 =01000 (ADC0-ADC0 x 10) lub MUX4:0 =01110 (ADC2-ADC2 x200)? Czy jest...
Kondensatory przy odpowiednich pinach. I zasilanie części analogowej też jest podpięte) A czy Kolega nie ma kłopotów z przetwornikiem. AREF w zależności od konfiguracji ADMUX powinien być podpięty do zasilania lub zablokowany kondensatorem do masy, a u Ciebie wisi w powietrzu. Przynajmniej tak wygląda na schemacie. Przy okazji, schematy rysuje się...
Może być kłopot, gdyż zwykła funkcja GETADC() może ograniczyć liczbę kanałów do 10 - zatem tylko normalne. Dopiero w trybie różnicowym jest dostęna opcja wzmocnienia sygnału różnicowego x1, x20. W sumie jeśli dałoby się wybrać wybrać kanał 11 (Chodzi tylko o to by do bitów ADMUX trafiła poprawna wartość.) poprzez GETADC(11), to wtedy napięcie "dodatnie"...
Mam takie urządzenie ktore mierzy szczyty sinusoid przesuniętych w fazie z trzech przekładników prądowych. Jako, że jest to też Modbus Slave z baudrate 250kbps to nie chciałem robić ADC na przerwaniu bo te już mają co robić z obsługą komunikacji. Tak więc ADC jest obsługiwane przez pooling flagi ADC. Zamieszczam tylko kawałek kodu. W tym urządzeniu...
ok dzieki za zainteresowanie najpierw BASCOM: oczywiscie w opcjach jest at90s8535 $crystal = 4000000 Config Portc = Output Config Portb = Output Config Portd = Output Config Adc = Single , Prescaler = Auto Dim A As Word Dim B As Word Dim C As Word Dim D As Word Dim E As Word Dim F As Word Dim G As Word Dim H As Word Cls Start Adc Do 'aDcsr.7 = 1 A =...
Tak, ja mam podobny problem. Tzn, udalo mi sie juz uzyskac transmisje, ale nie zawsze ona dzialala, czasem odbiornik zapalal diodke ze wchodzil w petle oczekiwania i dupa. Po resecie obu urzadzen moglo byc tak ze wszystko zadzialalo. Moj kod wyglada tak: KOD NADAJNIKA #define SCK 7 // SPI clock #define SDO 5 // SPI Data output (RFM12B side)...
Witam, trzeci dzień męczę się z obsługą ADC w ATmega88PA. Buduję układ gdzie chce sprawdzać, czy jest właściwe napięcie zasilania i czy bateria awaryjna ma właściwe napięcie. Oto mój kod i schemat pomiaru https://obrazki.elektroda.pl/4066899200_... Pomiar napięcia 12V za pomocą dzielnika, napięcie odniesienia 1,1V z ATmega88. Pomiar...
Heh wierz mi, czy nie... napisałem to... i byłoby wszystko ok, gdyby nie to, że nadpisywałem przykład z "Samples" w program files... i już było napisane klikam save i co...? Bascom zdechł a wraz z nim plik zniknął... (Zapomniałem, że vista nie pozwala szarakom na dotykanie P.Files...)... Także sorry nie mam siły drugi raz tego pisać... Dodano po 8 No...
Kolego Shel , kolega flapo213 zrobił to może "skomplikowanie", ale za to bardzo dokładnie, wręcz wzorowo. Tak przygotowane funkcje mogą służyć już zawsze, kiedy tylko będzie potrzeba korzystać z ADC w Atmedze. Jeśli nie chce Ci się analizować wszystkich funkcji, możesz ustawić tryb pracy przetwornika AD samemu w kilku linijkach. Generalnie chodzi o...
http://obrazki.elektroda.net/19_11986721... Chyba zbyt dosłownie wziąłem do siebie stwierdzenie, że na procesorze można zrobić wszystko :D. Kiedyś kupiłem kilka sztuk ATTINY13 i nie miałem za bardzo pomysłu na ich wykorzystanie aż wczoraj wieczorem przy piwie wpadłem na szalony pomysł wykonania na jednym z nich wzmacniacza mocy. Po krótkim...
Czy jest możliwość obsłużenia tego w Bascomie? Funkcja GETADC() Przeznaczenie: Pobiera wynik przetwarzania z wbudowanego przetwornika ADC na wybranym kanale. Składnia: zmienna = GETADC( nr_kanału , offset ] ) gdzie: zmienna - zmienna typu Word do której wpisana będzie przetworzona wartość, nr_kanału - numer kanału przetwornika ADC. Zwykle z zakresu...
Witam Piszę sterownik grzałki lutownicy. Sam sterownik wstępnie działa dobrze. Natomiast po wykryciu obrotu enkodera w prawo lub w lewo zwiększam lub zmniejszam wartość zmiennej NASTAWA i wysyłam po UART do komputera oraz wyświetlam na LCD od nokii 3310. Co jakiś czas w wyświetlanym tekście zarówno na komputerze, jak i na wyświetlaczu pojawiają się...
Witam. Odświerzę troszkę temat. AVT wypuściło drugą wersję oprogramowania do tego kitu. Zawiera ono obsługę jednego i dwóch skrzydeł. Wybór dokonywany jest automatycznie poprzez wykrycie obecności przystawki (napięcie na rezystorze po pomiarowym). Niestety program napisany jest w C, o którym nie mam zielonego pojęcia a chciałbym dopisać do niego blokadę...
Witam, W ramach wolnego czasu robię różne doświadczenia a wewnętrznym przetwornikiem ADC w mikrokontrolerze Atmega32. Jak w tytule, jestem na etapie budowy prostego oscyloskopu tylko i wyłącznie w celach edukacyjnych, (bo to przerost formy nad treścią). Oczywiście podzielę się doświadczeniami gdy skończę. Na stronie kolegi „dondu” (bardzo...
Witam od dwóch dni zajmuje sie pisaniem programów w C, próbowałem już BASCOM-a i Asemblera, z dobrym skutkiem ale nieznajomość C budziła wemnie obawy :) tak więc postanowiłem zacząć sie go uczyć moje pytanie jest następujące - oto kawałek kodu w C, program mierzy napięcie na wejsciu 0 przetwornika A/D i wyświetla jego wartość na linijce diodek podłączonej...
Witam Mam problem z układem na Attiny24. Chcę wykorzystać wszystkie 4 kanały PWM, oraz 4 kanały ADC. (1 - 4) + sygnał Aref. I moje pytanie jest, czy jeżeli uruchomiłem ADC, to mogę korzystać wyjść PWM, które są współdzielone z niewykorzystanymi pinami ADC? Myślałem, że ... Tak, jest realna możliwośc skonfigurowania peryferiów tego processora do (‘produkowania’)...
Witam Problem polega na tym ze nie da sie skompilowac programu ktory wykorzystuje ADC procesora. Wyrzuca mi "Error: 101 Can't find HW-register [ADMUX ] dodam ze podmienilem plik dat z wersji 1.11.8.3 do wersji 1.11.7.4. W wersji nowszej programuje sie procesor bez problemu (mam wersje demo wiec tylko 4k). Da sie jakos zakombinowac zeby dzialalo ?
admux getadc kanał admux kanal admux
tunel hamachi podłączyć domofon kolor znaki rozrządu scenic
prosty regulator prądu prostownik prosty regulator prądu prostownik
Bezpieczniki w magnetofonie Unitra MDS 432: jakie wybrać? Pioneer VSX-417 – procesor DSP56371AF180, mikrokontroler M3062, dekodowanie Dolby/DTS, typowe usterki