.Czy ktoś może wie w czym tkwi problem/spotkał się z taką sytuacją? A zmienna, której wartość kopiujesz do OCR3A/PWM3A nie jest przypadkiem zadeklarowana jako BYTE ? Jeżeli to nie to, to spróbuj zapisywać rejestry OCR3 osobno - OCR3AH, OCR3AL.
Witajcie. Zawsze mam kłopoty z konfiguracją Timerów i dopalenie PWM. Aktualnie mam problem z Atmeg128 ale pytanie dotyczy ogólnie uC. Otóż mam kilka pytań. 1) Zauważyłem, że na jednym timerze można skonfigurować max 2xPWM sprzętowy. Czy mam rację? 2) Przeglądając datasheet Atmega128 widzę wyjścia PB5(OC1A), PB6(OC1B),PB7(OC1C). Czy ta jedynka OC 1 A,B,C...
Zakres liczenia 16-bitowego timera przy zegarze 16MHz i prescalerze=1 to nieco ponad 4ms. Jak chcesz tym zmierzyć czas, który przy 5000obr/min wynosi ok. 12ms.?
Policz nastawy za pomocą kalkulatora AVR.
Więc spróbuj skorzystać z funkcji ICP timera. Tu masz przykład: http://winavr.scienceprog.com/avr-gcc-tu...
Witam, niestety ale chyba coś jest nie tak? Na wstępie należałoby wyjaśnić że nie ma czegoś takiego jak "automatyczne przeładowanie timera" (reload/load timer1 powiedzmy). Termin ten jest związany z procedurą konfiguracji timerów występującą tylko w trybie "Normal", gdzie każdorazowo początkowa wartość timera musi być wpisana przez processor. Taka...
włączenie timera 1 jest zbyteczne
W timerze (np. co 0.5 sek) gasisz albo zapalasz flagę (powiedzmy o nazwie fMiganie) Oczywiście po każdej zmianie flagi (fMiganie) następuje odrysowanie całości wyświetlanego zbioru elementów w najstępujący sposób: 1. Jeśli fPozycja jest poza zakresem zbioru wyświetlanych elementów (np. =0) - wtedy obraz wyświetlany jest bez migania. 2. Jeśli fPozycja...
Oczywiście, że kolejność ma znaczenie... Dokumentacji czytać się nie chce... Tematu też dokładnie nie przeczytałeś kolego a podałem wcześniej stronę na której można to znaleźć w dokumentacji ATmega128...
Jak sama nazwa wskazuje przy konfiguracji Timer1 masz compareA i compareB. Czyli masz dwa rejestry porowniania które zmieniaja odpowiednie nogi procesora czyli pwm dla tego tajmera są dwa A i B. Noga procka OC1a pierwszy PWM (kanał) i OC1B drugi. Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down 'regulacja...
Nie bawiłem się ATtiny2313, ale jeśli ma PWM to da się zrobić jakieś odtwarzanie dźwięku z próbek. Robiłem takie coś na ATmega128. Puszczasz generator PWM na najwyższej częstotliwości i jakiś timer do generowania przerwania okresowo. Timer determinuje częstotliwość prókowania. Podczas każdego przerwania timera wpisujesz nową próbkę do rejestru generatora...
Z tego co widze problem jest chyba w tym ze w przypadku 8 kompilator sam mi ustawial rejestr assr i bity exclk i as2 a w tym 168 tego nie robi. tylko jak na razie z racji mojej niklej wiedzy musze dojść jak to zrobić ręcznie. Widzę że problem już rozwiązany, ale dodam że dokładnie tak jest. U mnie w BASCOMie nie działa konfiguracja Timerów, Przerwań...
Użyj Timer2 dla obsługi RC5 zamiast Timera0 Config Rc5 = Pind.2 , timer = 2 i będzie OKejos ;)
Programowe generowanie sygnału video w jakimkolwiek standardzie jest zadaniem krytycznym czasowo, dlatego bez asemblera niewiele zwojujesz. Nawet w asemblerze trudno uzyskać więcej niż 100 punktów w linii. Zresztą zerknij na: Rejestrator przebiegów cyfrowych - przystawka do TV z EP Rejestrator przebiegów analogowych - przystawka do TV z EP Nie jest...
(...) ż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...
Witam Potrzebuję pomocy w przeportowaniu kodu źródłowego z BASCOM na C (Atmel Studio 6) - mikrokontroler ATMEGA128 Na początek fragment takiego kodu: [syntax=basic4gl] Config Adc = Single , Prescaler = Auto , Reference = Avcc Config Timer0 = Timer , Prescale = 1024 Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Disconnect , Compare B Pwm = Clear Down...
............... przy prescale = 1 częstotliwość PWM równa się częstotliwości krwarcu czyli 16MHz (trochę za dużo :)). .......... Co takiego? Timer5 skonfigurowany u ciebie do pracy w trybie1 generuje falę o częstotliwości 31 kHz (dokładniej 31250Hz), zgodnie z wzorem : http://obrazki.elektroda.pl/9569063700_1... gdzie TOP = "fixed value...
Tak jak wspomniałem, problemem są przerwania z timerów - wyłączenie pomaga.
Większość tego typu tematów na tym i innych forach wynika z ignorancji . Ignorancja po angielsku i po polsku znaczy to samo tyle że u nas jest mylnie interpretowana. Ignorancja to po prostu niewiedza i nieznajomość tematu. W instrukcji pisze wyraźnie, że kiedy konfigurujesz Timer to jest on startowany automatycznie. W kodzie w dowolnym miejscu piszesz...
A czy mogę skorzystać z któregoś z timerów tak aby uzyskać odpowiednią rozdzielczość i ludzki (w ms) wynik? tzn. jakie to ustawienie preskalera dla kwarcu 16 MHz? Albo czy da się jakoś ustalić np w procedurze przerwania po przepełnieniu timera taką wartość (wpisywaną po przepelnieniu) żeby przerwanie występowalo co ms i dodatkowo w procedurze przerwania...
Mam pytanie. Jak odpalic timer3 w m128 w roli PWM. Timer ten ma trzy wyjscia OC3a/b/c. Problem w tym, ze Bascom zachowuje sie tak jakby tego timera nie bylo. Napisalem programik testujacy i .upa >> error 46 - bledne przypisanie << wszedzie tam gdzie jest przypisanie Pwm3x = wypelnienie. W e wszystkich innych timerach (0,1) to przypisanie...
Witam, przeszedłem z ze 128 na 1281 (oba pod bascomem) i mam dwa problemy: 1) Używam Ekranu Dotykowego, 4 przewodowego podłączonego do portu ADC. I ekran dotykowy działa do kilku dotknięć a później przestaje. Czy należy w Programie jeszcze coś zmienić? 2) Zmieniłem Timer2 ze 128 na Timer4 w 1281. [syntax=basic4gl] .... Config Timer4 = Timer , Prescale...
Mam taki kłopot (Bascom + Atmega128) ; Korzystam z PWM w trybie FAST. Uruchamiam sobie to normalnie ; Tcnt0 = 0 Ocr0 = 0 Tccr0 = &B01101010 'timer0 in fast pwm mode, prescale = 8 10kHz Ocr0 = 0 Następnie zmieniam zależnie od potrzeb wypełnienie, przez wpis do OCR0. Na koniec wyłączam PWM ; Ocr0 = 0 Tccr0 = &B00000000 Tcnt0 = 0 PWM startuje zawsze od...
Przysiada zasilanie telefonu lub twojego uP - albo co gorsza zasilasz je z wspólnie z LM7805 a telefony modemy GSM pobierają ok 1000mA przy 12-10V No i oczywiście stos pamiętaj że funkcja inkey też zajmuje stos i może go przepełniać jeśli jeszcze masz jakiś timer i przerwania a wszystko obsługujesz przez LCD to można go zapchać w bascomie - spróbuj...
Witam! Jak rozwiazac problem zliczania impulsow z 8 kanalow np. na ATmega8535? ATmega8535 ma 3 wejscia typu timer/counter (ATmega128 tylko 4) a ja potrzebuje zliczac impulsy z 8 zrodel (wentylatory)-w celu pomiaru ich predkosci. CZy jest jakas mozliwosc podlaczenia tego przez jakis multiplekser (jak tak to jaki i jak to podlaczyc )?? Poniewaz jestem...
Troche sie zamotałem i nie wiem jak wybrnąć... Jak zliczyc przerwania on timer0, innymi słowy jak policzyc ile 1ms wystąpiła przy podczas przerwania wtrysku... [syntax=basic4gl] $regfile = "m128def.dat" $crystal = 16000000 $hwstack = 32 $swstack = 32 $framesize = 32 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6...
Zrobiłem aktualizacje do 2.0.7.6. Obsługuje bez problemu USBasp, no i biblioteki do SD faktycznie lepsze - obsługują SDHC i można np. sprawdzić rodzaj karty SD. Tylko zapisywany ciąg na karcie trochę inaczej jest. Zamiast spacji jest teraz "kropka" i cały tekst bardziej "zbity" w całość. Co do rC5 to nic się nie zmieniło, właściwie to gorzej bo pracuje...
janbernat --> tak na pierwszy rzut oka to w tym rozwiązaniu do obsługi klawiatury nie ma jednak żadnego mechanizmu eliminacji drgań styków i stąd może być to wrażenie, że niepewnie się przełącza itp moim zdaniem. Zobacz, naciskamy klawisz - rozpoczynają się drgania (zawsze występują prawda?) u ciebie od razu na pierwszy sygnał drgania styku reaguje...
Przerobiłem tak, żeby wysyłał testowo tylko jedną wartość ( losową ) co 8 sekund Dodano po 18 Dołożyłem Clear Serialin0 Com1_str = "" czyli [syntax=vbnet] $regfile = "m328pdef.dat" $crystal = 8000000 $hwstack = 100 ' rozmiar stosu sprzętowego $swstack = 100 ' rozmiar stosu programowego $framesize = 128 $baud = 19200 '************ Uart 0 Config Serialin0...
Witam, Chciałbym przerobić nie swój kod programu pod żyroskop l3g4200d. Kod znalazłem w internecie jest napisany właśnie na atmegę 1284p, a ja potrzebuję go przerobić na atmegę8. Kod wygląda następująco: [syntax=basic4gl]'======================... ' Project: L3G4200D 3tripple axes gyro Test #1 '...
Problem już chyba rozwiązany. Wystarczyło wyrzucić z timera fragmenty obliczeń i wstawić je np. do jakiejś deklaracji/podprogramu. Program teraz wygląda tak i jak na razie wszystko działa i poprawnie się wyświetla: [syntax=basic4gl]'---PROCESOR-----------... $regfile = "m128def.dat" $crystal = 16000000...
/canis i ja piszemy w jednej sprawie/ dzieki za info o dlugosci - po prostu probowalismy na rozne sposoby i toto zostalo, bo timer ma dzialac w koncu na timer1 i generowac przerwanie co 1sekunde teraz wyglada to tak: $regfile = "m162def.dat" $crystal = 8000000 $baud = 9600 $sim Config Timer1 = Timer , Prescale = 256 On Timer1 Odmierz Dim Laduj...
Jeśli chodzi o tę poprawkę z poprzedniego postu, to jak na razie po 1 dniu nie ma błędów w zapisie. Tak, myślałem o użyciu FOR... NEXT i flagi od timera. Ciekawsze byłoby sprawdzenie, czy aktualny folder to ten do którego miał wejść, jeśli nie to ponowić Chdir, ale przeglądam help'a Bascoma i nic takiego nie widzę. Ale można by sprawdzić, czy jest w...
Niby wszystko jest w porządku a za żadne skarby nie chce poprawnie działać. Kiedy przy timerze 2 ustawiam wartość prescalera na 256, to wychyla się w prawo, a jak na 1024 to w lewo. Ma to też wpływ na prędkość ruchu i siłę, ale nie rozumiem dlaczego. Poza tym cały czas lekko drży. Na razie używam wewnętrznego oscylatora, bo nie dopatrzyłem i wlutowałem...
Zastosowany kwarc 16 MHz Config Timer0 = Timer , Prescale = 256 i mam kilka flag potrzebnych w programie Prztimer0: Timer0 = 5 Set Flaga_4ms Incr Dzielnik(1) If Dzielnik(1) = 25 Then Dzielnik(1) = 0 Set Flaga_100ms Incr Dzielnik(2) If Dzielnik(2) = 5 Then Dzielnik(2) = 0 Set Flaga_500ms Incr Dzielnik(3)...
moze ja cos przeoczylem, a za nic nie moge zgadnac, dlaczego taki kodzik: $regfile = "m162def.dat" $crystal = 8000000 $baud = 9600 $sim Config Timer1 = Timer , Prescale = 256 On Timer1 Odmierz Dim Laduj As Word Laduj = 31250 Enable Interrupts Enable Timer1 Load Timer1 , Laduj Start Timer1 Do 'Print "."; Loop End Odmierz: Disable...
Witam ! Tworzę mały sterownik do auta i mam problem. Dotyczy on pomiaru częstotliwości (a właściwie czasu trwania stanu niskiego lub wysokiego) na Atmedze 128, która po dalszych przeliczeniach będzie mierzyć obroty silnika. Sygnał , który będzie mierzony to prostokąt o wypełnieniu 50% i częstotliwości w granicach 15-150Hz. Jak w tytule pomiar ma się...
Witam :arrow: Samuraj Myślałem i o takim rozwiązaniu, ale wizualnie nie jest zbyt ładne a do tego zegar będzie też termometrem, barometrem i wilgotnościomierzem i przecinek w tym miejscu będzie potrzebny. Dodatkowo, obrócenie wyświetlacza w środku płytki skomplikowało by bardziej projektowanie płytki PCB, która i tak jest dość złożona. :arrow: Dr_DEAD...
Heh troszkę ruszyłem do przodu. Okazało się że cały portc był odwrócony tzn MSB z LSB zamienione. Naprawiłem to programowo :) ekrany pięknie się kolorują :D Jutro postaram się ładnie uporządkować program i wrzucę dla potomnych bo ciężko mi było znaleźć w necie obsługę tego LCD w bascomie :) EDIT: Tak jak wspominałem wrzucam dla innych ;) [syntax=basic4gl]'Obsługa...
Atmel ma taki bajzel że już sam nie wie co robi, tu mamy mege8535 (to rozumiem) Tiny2313 (też) a tu nagle Mega168 (przecież to nówka sztuka) Mega329, 48 też są nowiuśkie. Teraz Atmel robi czterocyfrowe (raczej wprowadza) potem znowu będą trzycyfrowe (planowany: Mega640), albo pięciocyfrowe. Bajzel jest i niedoświadczonemu elektronikowi ciężko wyczaić...
Pin konfigurowany jest na początku, przed konfiguracją SPI. Dodano po 2 I jeszcze tradycyjne pytanie - chciałem mieć więcej wyjść Zrobiłem tak: [syntax=basic4gl] If Mid(tempstring2 , 6 , 6) = "LED1ON" Then Reset Led1 End If If Mid(tempstring2 , 6 , 7) = "LED1OFF" Then Set Led1 End If If Mid(tempstring2 , 6 , 6) = "LED2ON" Then Reset Led2 End If If Mid(tempstring2...
Witam diody porty PB0 do PB7 dioda z portu Pb1 podczas programowania i weryfikacji normalnie sobie miga. Fusebit 7 0:Brown-out detection level at VCC=4.0V Fusebit 6 1:Brown-out detection disabled Fusebit 98 10:SUT=10 Start-up time Fusebit DCBA 1111:111X Extremal Crystal/Resonator High Freguency Fusebit E 1:Disable 0CD Fusebit F 0:Enable JTAG Fusebit...
Dokładnie tak samo jak w przypadku TIMER1: CONFIG TIMER3 = PWM , PWM = 8 | 9 | 10 , PRESCALE = 1 | 8 | 64 | 256 | 1024 , COMPARE A PWM NO_OUTPUT ] = CLEAR UP | CLEAR DOWN | DISCONNECT , COMPARE B PWM NO_OUTPUT ] = CLEAR UP | CLEAR DOWN | DISCONNECT Licznik TIMER3 jest dokładną kopią licznika TIMER1 zatem wszystkie opcje jak i nazwy rejestrów są takie...
Witam Na wstępie się przywitam - na imię mam Piotr, jestem sobą początkującą w kwestii programowanie mikrokontrolerów AVR - przez ostatni rok "bawiłem" się w różne układy na m32 - pisząc soft w bascomie. Przesiadłem się kilka dni temu na procesor m1280 - i tu mam kilka problemów, których źródła nie potrafię zdiagnozować. Przede wszystkim - po wgraniu...
Najprościej przepisać jedną z bibliotek na Timer3. Dla przykładu w tej samej obudowie jest Atmega1284 ale pewnie można jeszcze coś poszperać ;)
To jest przyklad tego jak mozna obsluzyc DS1820 przez mega 8 ale jest tam tez obsluga wyswietlacza w C.Moze sie pryda.Sam to dostalem od jednego kolegi z forum:-) wiec mam nadzieje ze sie nie obrazi...mnie interesowal DS. Pozdrawiam Maciek! #include <avr/io.h> #include <avr/pgmspace.h> #include <stdlib.h> #include <ctype.h> #include...
Raczej problemem jest sama komunikacja po uart bo cały program bez niej działa jak należy. Mam jeszcze jedno podejrzenie co może być nie tak. Jak sprawdzę to napiszę. Dodano po 38 Myślałem że to budowa ramki danych jest problemem ale niestety nie. Wielkość ramki $framesize mam ustawione na 150. Dodano po 15 Dodaję uproszczony program jak Pisałeś. [syntax=vbnet]...
Dzięki za podpowiedź. Będę mógł sprawdzić dopiero pod koniec tygodnia. Niestety dopiero teraz, jak "mam mokro w gaciach" wczytałem się w datasheet i wyględa na to, że zupełnie niepotrzebnie kombinowałem, bo miałem ustawione wszystko jak należy. Mam jeszcze jedno pytanie, ale dotyczy ono raczej assemblera i 1wire. Każdy, kto dłubie w asm, zostaje zmuszony...
Witam Ponieważ nie do końca odpowiadają mi podane rozwiązania, zacznę od tego co powinienem na początku podać - ossochosi :) Programuję w bascom. Buduję układ który ma zadziałać jak uproszczony ABS: 1. pomiar prędkości obrotowej każdego koła 2. porównanie tych prędkości 3. min. 10 razy na sekundę reakcja na utratę przyczepności Doszedłem do takiego...
Przepraszam że nie potrafię tego wyjaśnić ale to nie ja pisałem ten program. Mam taki kod: http://obrazki.elektroda.pl/4548415200_1...
Witam Zawsze bawiłem się z atmega32 ale od do projektu potrzeba mi 6 kanałów PWM 16bit (sterowanie 2 serwa i 4 regulatory z rewersem). Zastosowałem atmega128 T1 i T3 . Wszystko było było by OK ale na kanale OC1C jest brak sygnału , zapewne banalne rozwiązanie ale jakoś nie mogę zatrybić nadajnika: [syntax=vbnet]$regfile = "m32def.dat" $crystal = 16000000...
1. pokaż schemat i ewentualnie kod. 2. zobacz czy nie masz podłączonych pinów gdzieś, gdzie możesz mieć załączone timer0 lub timer1 (PWM) ,przerwania. miałem podobny problem ze sterownikiem KSO108. piny OC1A, OC1B, INT... (mimo ich zadeklarowania jako wyjścia dla LCD mogą robić zupełnie coś innego) zamień chwilowo na inne. 3. bez schematu dalsze zgadywanie...
witam mam takie pytanko co nalezy zrobic aby uzywac usarta1 w atmega128, w up z jednym tylko usartem wystarczy skonfigurowac parametry transmisji poprzez $baud = ... natomiast atmega128 posiada dwa usarty i chcialbym korzystac z usart1 mam jeszcze jedno pytanko chcialbym na tym up zrobic zegar czasu rzeczywistego (rtc) z dokumentacji wyczytalem ze mozna...
nieee no kolego - to $crystal = 16000000 nie służy do ustawiania kwarcu w prockach. masz w ogóle podłączony jakiś kwarc do procka zewnętrzny???? teraz to zrobiłeś małą masakrę no tego to bym nie przypuszczał, bo skoro już działasz na Atmega128 (w sumie to samo co teraz robisz spokojnie można byłoby robić na Atemga8) to myślałem, że temat fusebitów i...
Witam, pisząc program do sterownika natknąłem się na pewne dziwne zachowanie, natomiast: -końcówkę PE5 mam ustawioną jako wejście -podwieszona jest za pomocą instrukcji set (bascom) -do końcówki dołączony jest tranzystor npn który zwiera ją z masą Program w pętli oprócz sprawdzania tej końcówki mierzy temperaturę z czujnika ds18b20. Problem jest w tym...
Witam Męczę się nad uruchomieniem obsługi RC5 w Atmega128 na pinie E.4 (INT4). Konfiguracja wygląda tak: [syntax=basic4gl] Config Rc5 = Pine.4 On Int4 Readir Config Int4 = Low Level Enable Int4 [/syntax] Procedura odbioru tak: [syntax=basic4gl] Readir: Disable Int4 sei Getrc5(adres , Rozkaz) Rozkaz = Rozkaz And &B01111111 Return [/syntax] Generalnie...
Korzystając z książki Pana Wiązani i Help-a po polsku dla Basc-oma składnia obsługi jest taka sama jak wyżej. Zresztą operowałem przerwaniem, ale od Timer1 i to właśnie tak działało. . . Czytałem w internecie o kłopocie z tymi przerwaniami, ale nijak nie doczytałem się rozwiązania... kto tutaj z kolegów zna ten problem i posiada rozwiązanie..?. Czy...
No właśnie taki kod przychodzi do głowy jako pierwszy ale to nie działa, nic mi sie nie wyświetla. Może na początek jakiś prosty zegarek spróbuje zrobić więc pisze taki kod: [syntax=basic4gl] $hwstack = 100 $swstack = 100 $framesize = 100 $regfile = "m128def.Dat" $crystal = 8000000 $baud = 19200 '=== Config the hardware === Rs Alias Portb.7 'S65 Data/command...
Z tego co wiem "PIN Change Interrupt" ma np. Atmega168 i Atmega 328. Atmega 32 - jakoś nie widzę takiej możliwości. Proszę o poprawienie mnie, jeśli się mylę. Oczywiście zawsze można skorzystać z tych specjalnych pinów - INT0, 1 czy 2 lub zasymulować taką kontrolę stanu pinu w zwykłym przerwaniu - np. timera.
co do bascoma to powiem Ci tak, na początku niby łatwiej i fajniej się programuje wszystko w bascomie, ale nietypowych rzeczy w nim nie zrobisz tak prosto (choćby np. obsługa dwóch lcd...) a ma on swoje ukryte "atuty" - bugi, które skutecznie zatruwają życie (np. skopana obsługa timerów na niektórych uP, błędy przy niektórych operacjach porównywania,...
Bascom tablice numeruje od 1. Można w nim zrobić tylko tablice jednowymiarowe. Ale masz w Atmedze128 4 liczniki. Nigdy nie robiłem nic na ATmega128. Ale właśnie ściągnąłem datasheet i widzę że timer3 ma 3 rejestry OCR timer1 2 rejestry timer2 i timer0 po 1 rejestrze. To razem osiem. A jeszcze pojemność liczników ustawiana-to jeszcze 4. To są różne częstotliwości...
Sporo tego ( obsługa SD, PCF8563 + menu do ustawiania daty, obsługa PCF8574 w przerwaniu INT1 )- ale nie ma problemu - zmieniła się tylko zawartość podprogramu Pomiar była taka, jak w pierwszym poście oraz wyłączyłem w wyświetlanie na LCD tych wartości wskazań z DS18B20, oczywiście dostosowałem pozycje wyświetlania do LCD 4*20 - załączniku spakowany...
I działa to tylko dlatego że bufor został przesunięty???? Tak. Jeżeli zastosujesz taki kod: $regfile = "M32Def.dat" $crystal = 16000000 $hwstack = 128 $swstack = 64 $framesize = 64 '---------------------------------------... Dim Timer1_licznik As Byte Dim Buffer(256) As Byte At 1024 Dim Write_position...
Podłącz sonar do interfejsu TWI w ATmedze 128. Wyjście ANOUT zostaw w spokoju. Sonar trzeba tak czy siak uruchamiać po i2c, a skoro tym samym interfejsem odczytuje się odległość, to nie widzę najmniejszego sensu samego wyjścia ANOUT. Zakładam że znasz chociaż bascoma i będziesz wiedział co z tym zrobić ;) Kod jest z robota, stąd trochę niepotrzebnych...
chciałem zrobić wstawkę asemblerową dla watchdoga ale to już nie istotne bo nauczyłem się ustawiać poszczególne bity w rejestrach i rozumiem że to wystarczy... ale problem istnieje przesiadłem się na atmega1284p tu jest watchdog do 8 s no i dla 8 nie działa 4,2 i 1s również nie działa, działa dla 0,5 i mniej - dlaczego??? dla 0,5 s wdr Wdtcsr = &B00011101...
Usunąłem Wait 1 przy konwersji z DS18B20, działa, bez problemu ( na trzech przewodach ), tylko wyniki są opóźnione - tzn. wyświetlany wynik nie jest z aktualnego pomiaru, tylko z poprzedniego. Dodałem jeszcze dwa czujniki DS18B20. Ich zapis razem z godziną i datą na karcie jest jak najbardziej w porządku, tylko wyświetlanie trochę szwankuje - tzn. czasem...
Dzięki za zainteresowanie tematem. Rzeczywiście mogłem lepiej opisać problem na samym początku. Już naprawiam błąd. System wygląda w ten sposób, że Atmega128 taktowana sygnałem o częstotliwości 14.745600 MHz (F_CPU = 14745600) podłączona jest bezpośrednio do 3 osiowego drivera silników krokowych TB6560. Konkretnie mówiąc pin 3 portu D podłączony jest...
Witam Z wycinków kilku programów chciałem zrobić jeden duży barkuje kilku rzeczy i zwiazku z tez pytania W jaki sposób mogę zwiększyć ilość wejść i wyjść żeby zmieścić wszystko ? ( patrz 1 PINY ) brakuje ustawiania podlewania względem kalendarza zielonego pojęcia nie mam jak z pcf mogłbym ustawić godzinę i czas podlewania np 18:00]przez 1 min ? brakuje...
http://obrazki.elektroda.pl/5924959500_1... Witam ponownie! Kilka dni temu chwaliłem się projektem "PALM v1.0 BETA Atmega128", a dziś chciałbym przedstawić komputerek do motoru lub roweru jaki zrealizowałem już jakiś czas temu na zamówienie. Urządzenie miało zastąpić oryginalne psujne, mechaniczne zegary. Funkcje i założenia: *Wyświetlanie...
Witam, Chciałbym przedstawić mój pierwszy układ na mikrokontrolerze. Jest to dość nietypowy zegar... Czas oraz datę ukazuje za pomocą ośmiu diod LED. Układ wykorzystuje bezwładność ludzkiego oka. Ukazanie się obrazu jest możliwe dzięki bardzo szybkim (kilkaset mikrosekund) zapalaniu się i gaśnięciu diod. "Sercem" układu jest mikrokontroler AT89C4051,...
Witam Korzystając kodu Tuxgraphics zmodyfikowanego przez Kolegę Mundi1970 , chciałem również postawić prosty serwer pokazujący temperatury z kilku czujników oraz wilgotność i ciśnienie. Po zmianach regfile i pinu CS nie mogę go jednak skompilować. Występują trzy błędy: Error 46 Line: 363 Assignment Error Enc28j60_linkup Erroe 229 Line: 450 End Sub or...
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
https://obrazki.elektroda.pl/5098001700_... Zaprezentuję konstrukcję z przed kilku lat, która powstała jako praca zaliczeniowa. Powstała aby sprawdzić żywotność taśm przewodzących pod kątem ich zginania. W tym celu zbudowałem precyzyjny miernik rezystancji do 1Ω sterowany przez ATMEGĘ128, która także steruje silnikiem elektrycznym...
Witam. Robię układ oparty na karcie SD, mikroprocesorze ATMEGA32. Program napisany w Bascomie, użyte zostały biblioteki AVR-DOS. MA on odtwarzać pliki WAV z karty, do testów używam tego programu znalezionego w internecie. 'dźwięk 32khz / 8 bit / mono / wav 'do każdego nagranego pliku dodać z przodu pliku 10% czasu utworu ciszy potrzebej na załadowanie...
Bez kalkulatora "na czuja" już myślę że przy 16MHz i 8Bit Timer i prescaler 256 nie da się uzyskać 50Hz.. Powiedz dlaczego nie użyjesz gotowych instrukcji konfigurujących Timer? Pytam z ciekawosci. Albo dlaczego nie chcesz użyć gotowego polecenia http://wiki.mcselec.com/bavr/CONFIG_SERV... 50Hz to cała era dla mikrokontrolera... Jeden timer dla wszystkich...
Disable Interrupts Call Gettime Enable Interrupts Jeżeli funkcja Gettime trwa zbyt długo to gubisz przerwania od timera. Jak zmieniłeś preskaler, to masz przerwania co 8ms i pewnie już się wyrabia. Co takiego robi w Bascom Gettime, że trzeba wyłączać przerwania?
Klawiature musisz potraktować jak jeden zwykły przycisk. Tyle że zwykły przycisk ma stan wysoki jeśli nienaciśnięty a ten przycisk zwraca 16 jeśli nienaciśnięty. Napisałem na szybko dwa przykłady. Jeden działa bezposrednio na wartosciach a drugi na stringu [syntax=vbnet] Dim Key As Byte Key_val As Byte , Lock As Byte , Licznik As Byte Dim Val_str As...
Witam. Na wstępie chcę napisać że jestem początkującym, i na razie się uczę. Chcę napisać przykładowy program, co będzie wykonywał jakąś funkcję co 1 sekundę. Chcę do tego też użyć obsługi przerwań (w książkach było o przepełnieniu zegara). Mogę od was poprosić przykład jak zrobić taki timer (z komentarzami objaśniającymi)? Mój zegar ma taktowanie 16mhz,...
Witam :) Jako ze jest duzo pytan na forum na ktore odpowiedz padla, postanowilem ze zbiore choc troche postow do kupy, tematy dotycza glownie AVR, bo z ARMow jeszcze nie czuje sie na tyle na silach zeby robic FAQa ;) Mam nadzieje ze sie komus przyda :) Niby FAQ jest, ale dla mnie jakoś malo czytelny i chyba nikt go juz nawet nie aktualizuje ;) Jesli...
Starałem się trzymać jednego "standardu". W odbiornikach też mam PCF8563 i wszędzie używam tego zapisu. Dodatkowo, zaraz po odebraniu i zdekodowaniu sygnału DCF77 ustawiam flagę i wszystkie odbiorniki wtedy jednorazowo aktualizują czas. Jak ktoś z tym zaczyna, to nie należy się denerwować, jeśli nie odbiera. Najlepszy odbiór jest 1-5 w nocy, czasem...
Zainstalowałem AVR Studio4 i lecę od początku z google i pdf na temat ASM i AVR Powiedzcie chociaż czy w dobrym kierunku zmierzam? Bo jak w złym to odpuszczam i daje sobie spokój, pobawię się migającymi diodami w Bascomie. Tam gdzie nie ma komentarza to nie wiem co to znaczy i co robi ale było w pdf lub innych opisach, jeżeli ktoś może mi wyjaśnić instrukcje...
zrobiłem tak: Atmega328 - Master Do Config Serialin = Buffered , Size = 24 Enable Interrupts If Ischarwaiting() = 1 Then ' sprawdź czy jest jakiś znak do odebrania w buforze lub HW UART Gosub Odczyt_rs End If '***************************** wysyłanie żadania danych do modułu 001 If Flaga_001 = 1 Then Set Re_de Waitms 2 Print "MOD001"...
Cześć wszystkim ;) Pisze w sprawie takiej ze postanowiłem połączyć atmege32 i kartę microSD 2 gb i tu sie pojawiaja problemy a mianowicie program nie pokazuje mi pojemnosci karty niby inicjacja przebiega ok ale cos nie tak nizej wstawiam kod programu $regfile = "m32def.dat" $crystal = 8000000 $lib "Lcd-pcf8833.lbx " 'special color...
Tak oczywiscie reset podciagniety. Okrojony do minimum program: $crystal = 7372800 $regfile = "m168def.dat" Config Aci = Off Config Lcd = 40 * 2 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.0 , Db7 = Portb.1 , E = Portb.4 , Rs = Portb.5 Config Timer1 = Timer , Prescale = 64 On Timer1 Timer1_int Config Pinc.4 = Input '...
Witam. Robię sobie komputerek spalania do samochodu. Wszystko ładnie wychodzi poza czasem wtrysku a co za tym idzie - spalaniem. Występują jakieś zakłócenia i nie wiem dlaczego. Może ktoś pomoże....:) Kod: $regfile = "m168def.dat" $crystal = 16000000 ''''''''''''''''''''''''''konfiguracja portów'''''''''''''''''''''''''''''''''' Config Portd...
Więc podyskutujmy. :D może coś z tego wyniknie.. Na początek to gwoli ścisłości. Sterowanie magistralą 1wire zaczynałem od gotowca. Już nie pamietam kiedy, ale był to kit z AVR na osiem czujników temperatury i działało mi to ale na ograniczonej długości tej magistrali co mam no może jakieś 15 metrów. Musiałem odłączać dalszą część kabelków bo innaczej...
Wykonałem termometr, który ma rejestrować wyniki z pomiaru temperatury na karcie SD w pliku TXT. Wzorowałem się na projekcie rejestratora pogodowego wykonanego przez kolegę Duch_a. Napisałem, krótki program na podstawie w/w projektu, który ma utworzyć plik na karcie i zapisać w nim krótki tekst. Niestety w wyniku działania programu plik nie zostaje...
http://obrazki.elektroda.pl/3637756900_1... http://obrazki.elektroda.pl/6313868300_1... Zrealizowałem w tym roku swoje postanowienie jeszcze sprzed zeszłej zimy i zrobiłem sobie wreszcie własny sterownik pieca CO. Na początek pytanie "dlaczego"? Otóż oryginalny dostarczony z piecem przede wszystkim miał 6 poziomów nadmuchu...
Witam Używam Attiny2313 do pomiaru dwóch temperatur z DS18B20. Wynik ( Integer ) przesyłam bez żadnej obróbki przez UART przewodem 40 cm do Atmega328. Atmega rozbija odebrane dane i jest obróbka Kod Attiny2313 $regfile = "attiny2313.dat" $crystal = 8000000 $baud = 4800 '********************* Konfiguracja magistrali 1-Wire Config 1wire = Portd.5...
Należy "podpisać" przesyłane zmienne tak by mikrokontroler jednoznacznie wiedział z którą ze swoich zmiennych skojarzyć ma przesłaną wartość i w niej ją zapisać. Wiele urządzeń ma swoje własne sekwencje bajtów po których własnie mikrokontroler jest w stanie określić co nadeszło. Takie sekwencje nazywają się "ramką". Na przykład System NMEA 0183 z odbiorników...
Witam Wykorzystałem do odbioru kod podany przez Kolegę Mirka [syntax=basic4gl] $regfile = "m168def.dat" $crystal = 10000000 'taktowanie procesora $hwstack = 32 ' rozmiar stosu sprzętowego $swstack = 10 ' rozmiar stosu $framesize = 40 ' rozmiar ramki $baud = 9600 ' predkość transmisji Config Debounce = 30 '********************* konfiguracja UART Config...
Witam Odbieram i dekoduje sygnał DCF77 na płytce Atmega328, do tego wysyłam ten + kilka innych danych przez RFM12. Odbiornik jest włączany raz na dobę koło godziny 3. Raz na kilka dni zdarza się, godzina jest przesunięta do tyłu. jako, że jeden z odbiorników danych z RFM12 ma zapis na SD, to przeglądając zawartość karty SD widać, że do zmiany godziny...
Sterowanie obrotami silnika powinno być w przerwaniu od timera. Trzeba wstawić flaga_1ms. No i dodać jakiś licznik kroków. To jest ostatni kod popełniony w Bascomie: 'Program do sterowania małych silników krokowych za pomocą ATMega168 it.p. i układu L6219 lub LB1845 'sterowanie ćwierćrokowe, zasilanie 40V $regfile "m168def.dat" $crystal =...
Witam. Jak za pomocą Mega128 mierzyć czas w zakresie 0-500 ms? Mam program który zlicza mi czas w sekundach lecz jest z nim mały kłopot często do zliczonego pierwszego czasu mimo resetu timera dodaje mi się czas po kolejnym zliczeniu [syntax=basic4gl]Sub Tmr1 Cls Dim Sek As Byte Dim Sek2 As Byte Enable Interrupts Config Timer1 = Timer , Prescale = 256...
Witam, mam kod: [syntax=basic4gl] Config Timer0 = Timer , Prescale = 1024 Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Disconnect , Compare B Pwm = Clear Down , Prescale = 8 Config Timer2 = Timer , Async = Off , Prescale = 1024 , Compare = Disconnect , Pwm = Off , Clear Timer = 1 Config Timer3 = Timer , Prescale = 256 Config Int6 = Change On Ovf0...
Chyba wykrakałeś tę liczbę szatańską- przy 40V zasilania z płytki zaczął się wydobywać dym. Uporządkowany trochę kod- jeszcze w bascomie- ale łatwiej będzie wystawiać stan portu w C. 'Program do sterowania małych silników krokowych za pomocą ATMega168 it.p. i układu L6219 lub LB1845 'sterowanie ćwierćrokowe, zasilanie 40V $regfile "m168def.dat"...
Witam, drogich forumowiczów. Mam problem z komunikacją kilku urządzeń w sieci rs485. A tak prawdę mówiąc to z komunikacją pomiedzy dwoma, jednym "master" i jednym "slave". Normalnie staram się zadawać pytania w ostateczności na forum Elektroda, ale po prawie 3 tygodniach siedzenia przy problemie, przeglądaniu masy poradników i postów związanych z rs485...
Witam Do "kompletu" brakuje mi obsługi zegara DCF77. Tzn. uruchamiałem już wcześniej na Atmega8 i nie było problemów. Jednak przy tym układzie wykorzystuję Timer, przerwania - może konfiguracja jest zła ?. Timer0 - liczniki i flagi Timer1 - DCF77 Timer2 + INT0 - odbiór RC5 INT1 - przerwanie od PCF8574 Całość działa, do momentu podpięcia sygnału zegara...
Mam problem z odbiorem danych z rc5. Kiedy uruchomię program demostracyjny rc5 z help'a bascom avr to wszystko dział poprawnie. Jeśli wkleję obsługę rc5 w istniejący program, to powstaj problem, procesor odbiera tylk dane 255 i 127. Może ktoś zna rozwiązanie tego programu. Poniżej zamieszczam kod mojego programu. $regfile = "m128def.dat" $crystal =...
atmega128 timer bascom atmega128 atmega128 przerwania bascom
telefon alcatel instrukcja czarny ekran włączyć myszka kondensator pobór prądu
Niedoładowany akumulator Skoda Octavia 2 1.6 MPI 2004 Brak powietrza w żółtym przewodzie naczepy