Prescaler musi być co najmniej 8.
Wyłącz przerwania na czas transmisji 1wire
Taki jest Bascom niestety. Wiele rzeczy w tym kompilatorze czasem powoduje bardzo dziwne zachowanie, bo W TEORII enable disable interrupts powinno zablokować wszystkie przerwania...
Czy wiesz co to jest prolog i epilog w assemblerze? Czy wiesz co to jest stos? Z tego co wiem w obsłudze przerwania powinno stosować się krótki i prosty kod, natomiast w moim przypadku potrzebuję po wystąpieniu przerwania przejść do wykonywania programu w pętli. Od takich spraw są flagi (czyli np. zmienne globalne), którym w przerwaniu ustawiasz jakąś...
Łopatologicznie: Najpierw ładowana jest stara zawartość rejestru odpowiedzialnego za włączanie lub blokowanie przerwań (korzysta z tego np. polecenie ENABLE). Potem włączane jest przyjmowanie przerwań z linii INT4, tak jakbyś wykonał ENABLE INT4. A na końcu nowa zawartość rejestru zostaje zapisana w pamięci procesora. I od tej pory przerwania z INT4...
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 to mamy winowajcę. Robienie czegokolwiek długotrwałego w przerwaniu to chory pomysł, ale problem polega na tym, że procedury obsługi LCD nie blokują przerwań na czas wykonywania operacji na LCD - dołóż blokowanie i odblokowanie przerwań na prymitywach LCD i zadziała (jako proteza). żeby zadziałało dobrze - przenieś obsługę 1Wire do pętli głównej.
ATmega128 ma "tylko" 8 zewnętrznych przerwań i nie ma tam przerwania PCICR. Przerwania możesz deklarować poprzez nazwy rejestrów: ON INTX lub jak dla M168: ON PCIEX i dalej korzystać z normalnej składni Bascoma.
(at)Piotrus_999 Te popularne uC typu atmega8/32 czy attiny2313 czyli te które gównie programuje są jakoś tak bardziej głupoto odporne no i to że od nie dawna siedzę w C wcześniej Bascom AVR
To może zamiast wyłaczać przerwanie od timer1 trzebaby pomysleć od odblokowaniu niektórych przerwań w przerwaniu.
Nie napisałeś jak obsługujesz wyświetlacz. Jeśli nie sprawdzasz zajętości tylko odczekujesz jakiś czas przy wysyłaniu danych to być może przerwania przychodzą zbyt często zanim dane zostaną wysłane do wyświetlacza i sie coś psuje. Sama obsługa przerwania trwa może zbyt długo.
Wlaczasz przerwania tylko po co skoro nie masz zadnych procedur do ich obslugi ?? Bardzo mozliwe ze Bascom wtedy skacze na poczatek pamieci powodujac ze wszystko rusza od nowa. Pozdro Dexter
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...
http://obrazki.elektroda.pl/4780964300_1... Witam Chciałem przedstawić moją konstrukcję odtwarzacza plików SID. Jest to moje protopywowe urządzenie zbudowane na dwóch płytkach uniwersalnych.Wszystkie połączenia są wykonane kabelkami.Sercem układu jest ATmega32 który jest prostym emulatorem procesora z C64 6502.Oryginalny układ SID'a...
Witam wszystkich. Pisze program do pewnej maszyny gdzie pracują silniki krokowe itp. Ale jest tez pomiar temperatury (termostat) jak zrobic zeby co ok 2s niezaleznie od głównego programu procesor sprawdzal czy wlaczyc czy wylaczyc grzalke. Slyszalem o przerwaniu z przepelnienia licznika ale nigdy tego nie praktykowalem. Procek to ATMEGA 128 a kompilator...
Nie znam się zbyt na Bascom, musisz sobie doczytać w Helpie, jakimi słowami się ustawia tryb CTC (Clear on Timer Compare) w tym liczniku, Przerwanie nazywać się chyba będzie "On Compare3" or sth.
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...
Nie zdarzyło mi się uszkodzenie portów zwarciem itp więc póki co rezystory usuwam. Generalnie panel już działa i to bardzo dobrze obsługa programowa jest nawet przyjemniejsza od obsługi zwykłej klawiatury czego się nie spodziewałem. Mam jednak pytanie czy ktoś ma jakiś pomysł na generowanie przerwania w momencie dotknięcia ekranu ? tak aby nie było...
Kolego prosta sprawa, do odbioru danych po rs232 używaj przerwań i gromadź dane w buforze. Obsluga przerwania odbioru znaku powinna sprawdzać kod znaku nadchodzącego z zewnątrz. Jeśli przyjdzie znak Enter przerwanie ustawia flagę. Flagę sprawdza z kolei głowny program, jeśli jest ustawiona wykonuje obsługę związaną z nadchodzącymi informacjami po rs232....
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ń...
Od czego są przerwania? Podlgądnij sobie jak to robi BASCOM, popraw niedoskonałości i gotowe. :arrow: http://www.elektroda.pl/rtvforum/topic10...
Umieść kod programu, to może ktoś pomoże. Ja akurat z Bascomem nie miałem doczynienia. Pozdrawiam Adam P.S. Na tym pinie masz również przerwanie zewnętrzne INT5, może to jest przyczyna.
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...
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...
Ok. Znalazłem, mam tylko jeszce jedno pytanie. Bo program pisze na ATmega128 i korzystał będę z 2 UARTów czy odbieranie w przerwaniach będzię dla uart1 i uart2 czy tylko dla jednego?? Dokładnie wygląda to tak: UART1 wykorzystuje do komunikacji procka z PC (RS-232). UART2 wykorzystuje do komunikacji pomiędzy innymi urządzeniami (RS-485). Jak masz może...
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...
Ojej, zacznę brutalnie - po co piszesz w assemblerze, skoro nie masz o nim pojęcia? Napisz w C lub Bascomie. Co do assemblera - jak piszą inni - w obsłudze przerwania odkładaj rejestry na stos, obowiązkowo musisz odłożyć rejestr stanu procesora. To spowoduje, ze w przerwaniu będziesz mógł użyć wszystkich rejestrów, które wcześniej odłożyłeś na stosie....
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...
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...
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...
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...
Wygląda to tak jakby procek z niewiadomych mi przyczyn nie generował przerwania, albo nie ustawiał w przerwaniu odpowiednio stanu pinu wyjściowego. Jak można w ogóle takie wnioski wyciągać a tym bardziej na podstawie tak lakonicznych informacji? Żaden procek nie gubi przerwań, to niestety autor kodu gubi się podczas pisania programu - i gdybyś tego...
kod ( właściwie część dotycząca PCF8574AP ) Piny P.0 - P.4 do switchy, podciągnięte do VCC przez rezystor 10 K, wyjście INT układu PCF8574 podciągnięte przez rezystor 10k do VCC Poprzedni układ był na Atmega328, ten jest na Atmega1284P Przy uruchomieniu jest tak, że miga pierwsza opcja menu - ustawienie minut, na przemian z tym co powinno być wyświetlane...
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ę...
Dla świętego spokoju ten wpis w rejestr 16 bitowy bym zrobił przy wyłączonych przerwaniach. Zwróć uwagę że nie jest to operacja atomowa.
/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...
Przerobiłem program na Atmega328. Teraz ma tylko odbierać dane z master na Atega1284p i wysyłać do Domoticz. [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 = Buffered , Size = 150 ,...
1. Włączasz przerwanie przed skonfigurowaniem procedury obsługi przerwania. 2. Całkowicie niepotrzebnie wyłączasz i włączasz przerwanie w obsłudze przerwania. 3. Nie zauważyłem, żebyś włączył podciąganie linii, po której jest zgłaszana przerwanie. Czy masz tam zewnętrzny rezystor podciągający? Jeśli nie - to to jest źródło problemu.
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...
Napewno masz rację bo na 51 tak miałem niestety prawie 5 lat temu. Teraz już szkoda się bawić w 51 dlatego padło na AVR - zestaw uruchomieniowy na ATmegę128 ma znajomy dlatego padło na 128 (swój mam dopiero nabyć). Będę pisał w BASCOM-ie bo już w nim pisałem. Samo napisanie raczej nie będzie problemem bo pisałem już w kilku językach ale prosiłbym Cię...
Czy poza sygnałemy TXD i RXD w FT232 podłączasz do ATMEG-i inne wyprowadzenia ? Zrobiłem kiedyś taki układ na ATMEGA16L/8MHz i działał bez problemu. Co prawda, oprogramowałem uC w BASCOM-ie, ale to nie powinno mieć wpływu. Nie mam teraz dostępu do tego projektu, a program został w mojej starej firmie, ale z tego co pamiętam dane które wysyłałem do uC...
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,...
Mam w projekcie Atmegę128 + PCF8583 + kilka układów I2C (3xADS1110, AT24c1024), dodatkowo dołaczam dwa moduły z Atmega64 każdy. Chcę, aby każdy z mikrokontrolerów odczytywał czas bezpośrednio z PCF8583. Teoretycznie arbitraż jest możliwy, ale u mnie to nie chce prawidłowo działać - zawiesza się komunikacja i programy "stoją". Do testów zostawiłem w...
Po kiego grzyba w ogóle jest ci potrzebny ten PC-te. Jeśli się przy nim tak uparłeś a masz przecież 2 UART-y to pod jednego podepnij sobie PC-ta z MAX232 a pod drugi SIM-a a dzielnikiem na wyjściu Txd do atmega128 albo buforem 74LVHC08 zasilonym z samego SIM-a. Bedziesz sobie transmitował we wszystkie strony ile dusza zapragnie. Najwydajniejsza jest...
I właśnie dlatego w temacie jest coś takiego: ATMEGA Ludzie! Czy ja napisałem że jest to cud szybkości i możliwości programistycznych? Odpowiedź : NIE bo mam to w nosie. Temat napisałem dlatego że męczyłem się aby wydusić kilka dźwięków z atmegi przy pomocy Bascoma ( bo akurat jego trochę znam bo programowałem niegdyś w Visual Basic-u). Kto czytał cały...
a czy mógłbym w takim razie prosić o jakiś przykład z getrc5? ja używam czegoś takiego: '---------------------------------------... ' RC5.BAS ' (c) 2000 MCS Electronics ' oparte na nocie aplikacyjnej AVR410 f-my Atmel '---------------------------------------... $regfile "m1280def.dat"...
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...
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...
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...
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...
Witam ! Postanowiłem do dać nowy temat bo nigdzie nie znalazłem rozwiązania. Potrzebuję kogoś z okolic W-wy, kto podszkoli mnie w programowaniu mikrokontrolerów, chodzi mi o jakiś kurs organizowany przez jakąś firmę lub bardziej może jakiś student lub zapaleniec w tym temacie chciał by dorobić sobie. Sam oczywiście zacząłem się bawić, nabyłem płytkę...
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...
Są rzeczywiście sytuacje, gdzie hardware'owe i2c/twi potrafi się zawiesić. Nie jestem specem od AVR niemniej kiedyś bawiłem się w atmega interfejsem TWI. Wykonywałem losowe zwarcia linii SDA zarówno w trakcie transmisji jak i gdy linia jest wolna. Czasem gdy rozwierałem linię SDA ona zamiast podciągnąć się do 5V pozostawała na 0V a w rejestrze statusowym...
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...
Myślałeś o tym by zatrzasnąć stan linii danych w rejestrze na zboczu i odczytać zawartość rejestru już później przez CPU. Mógłbyś dodać licznik i mala pamięć SRAM oraz bufor bo tak małego FIFO raczej nie kupisz... Ale moim zdaniem będzie droższe i większe niż dodanie prostego uC który będzie w pętli robił to czego potrzebujesz - ile teraz kosztuje najtańszy...
http://obrazki.elektroda.pl/5522182500_1... takie coś wymodziłem. Ale to na razie schodzi na dalszy plan ponieważ z promotorem uzgodniłem, ze nie ma sensu wykonywać kompletnego modelu na pracę inżynierską (dopiero na magisterkę). Niemniej mam zrobić elektronikę, aby zaprezentować koncepcję działania robota. I tu zaczynają się schody...
Która wersja Bascoma ? Jeśli jedna z nowszych to spróbuj skompilować w wersji 1.11.9.5 lub 1.11.9.8. Bascom od wersji 2.x.x.x nie działają mi za dobrze, a zwłaszcza RC5 i Atmega168.
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.
Preskaler 1024 tyczył się sprzętowego PWM. Jeśli 16MHz/64/4999 = 50 to 16MHz/1024/ 256 = 61Hz i to najniższa wartość jaką uda Ci sie osiągnąć..ale na sprzętowym PWM . Możesz jednak spróbować. Żeby mieć programowe PWM o rozdzielczości 100 kroków (to niecałe 7bit) to przy tym sposobie trzeba mieć przerwanie 100 razy szybsze. Dla 8 bit już nie jest tak...
Triangle Deluxe - Zaawansowany system oświetlenia http://obrazki.elektroda.net/26_11981998... Przedstawiam mój kolejny bardzo długo zresztą wyczekiwany projekt. Jest to jak dotąd największe z moich przedsięwzięć wykonane zupełnie samodzielnie od początku do końca. Jest też najdroższe gdyż z grubsza licząc kosztowało ponad 1000zł. Wstęp. Było...
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...
Myślę, że źle podszedłeś do tematu. Wypadałoby wykorzystać przerwania z UARTu i zrobić sobie jakąś ramkę wymiany danych z sumą kontrolną by wiedzieć, że odebrane dane są poprawne, a jeśli nie to żądać powtórki lub je odrzucić.
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...
Bascom - wersja 1.11.95 Kod, no jest tego sporo: - zegar PCF8563 - Zapis na SD - dwa czujniki DHT11 - odczyt z PCF8574AP ( klawiatura ) - RC5 - ma być DS18B20 - ma być DCF77, ale nie doszedłem do tego momentu ( tzn testowałem na innym procesorze i działało ) Działa - zegar PCF8563 - dwa czujniki DHT11 - odczyt z PCF8574AP w przerwaniu ( klawiatura )...
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...
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"...
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...
Działa!!!!!!!!! Zastanawiałem się czemu procesor próbował wyświetlać ciągle tę samą wysłaną zmienną jedną pod drugą i po wielu próbach i błędach znalazłem przyczynę. Mianowicie wcześniej myślałem że zmienna zdefiniowana jako: Dodano po 1 Nawet szybko mi poszło z tą kartą sd. :D Oto kod wysyłania z atmegi32 pliku *.txt z karty sd w którym zapisany tekst...
czy masz w programie jakieś inne przerwania ?
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?
zmieniłem kod w następujący sposób #define F_CPU 1000000UL // 1 MHz // prędkość transmisji 9600 #define UART_BAUD_RATE 9600 #include <stdlib.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <avr/pgmspace.h> #include <util/delay.h> #include "uart.h" // częstotliwość CPU w...
Tak, ale to czy każdy czujnik chcesz odczytywać osobno, czy wszystkie na raz zależy od reszty programu. Poza tym namawiam do porzucenia Waitms 750 na korzyść Timerów i przerwań.
Jak kolega bobeer zauważył - twoja procedura zapisu na SD trwa tyle, ze przerywa ci odczyt pozostałych ramek. Wysyłaj ramki wolniej, zwiększ prędkość zapisu na SD, albo zmień sposób odczytu ramek - niech się odczytują np. w przerwaniu. Poza tym czy oczekiwanie na '*' to jest to czego chcesz?.. Ramka źródłowa ma w sobie dwa takie znaki. Nie powinieneś...
Próbowałem to rozwiązanie ale rzeczywiście jest to chybiony sposób. Chciałem zrobić rejestrator temperatury który zapisywałby na kartę pamięci co 5min temperaturę i godzinę. Wszystko już mam oprócz zegara. Teraz wymyśliłem aby procesor (atmega328) była również zegarem. Ale nie wiem czy da rade tak zrobić. Timer1 mam zajęty. Na timerze0 chciałem generować...
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,...
No właśnie tylko zacząłem zabawę z atmegą w bascomie bawiąc się z coraz to większymi układami no i tak doszedłem do tego projektu co teraz. Ponieważ miał to być sterownik ogrzewacza który znajduje się w innym pomieszczeniu napisałem sobie aplikacje do układu który miał być panelem sterującym i do układu wykonawczego. Taki projekt przy którym też pewnych...
Podstawowy błąd w programie odbierającym dane to za mały bufor, dane mogą być nadpisywane. Bufor powinien mieć minimum 14 bajtów, zmienne są wysyłane w postaci łańcucha np. "-32768,-32768",$0D. Do prawidłowej pracy bufora wymagane jest globalne włączenie przerwań (Enable Interrupts). [syntax=basic4gl]Config Serialin = Buffered , Size = 28 , Bytematch...
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...
Tu poniżej jest nieźle namieszane '*********************** Obsługa bufora UART Serial0charmatch: Flaga_rs = 1 Return Odbiór bufora i przepisanie do zmiennej Tx powinien zostać wykonany w całości w tym przerwaniu, a nie ustawiana flaga że coś jest w buforze a potem dopiero za jakiś bliżej nieokreślony czas odbiór. A co będzie jeśli zostanie zasygnalizowana...
A którą wersję Bascoma używasz? 1.11.9.0 Timer1_int: Counter1 = 54040 ' 10 razy na sekunde .... Return Nie wiem dokladnie ile cykli w bascom-avr jest zuzywane na odlozenie wartosc rejestrow na stos dlatego wybralem wartosc 54040 zamiast 54016 jako bardziej zblizone do 0.1s / stos + 0,09979167s / moze ktos wie ile dokladnie cykli jest tracone przed...
Madergames9 --> rzeczywiście w tym wszystkim może źle doczytałem ale już widzę, że twój problem dotyczy tylko tych przełączników a nie czujników temp. Ok - rzeczywiście do tego celu tranzystor chyba byłby przydatny - tym bardziej, że jednak masz na tej magistrali "parę" tych urządzeń zakładając - że żadne przerwania nie zakłócają ci transmisji po 1wire...
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. Tym razem mam dość dziwny temat, ale bez oscyloskopu jest ciężko przeanalizować gdzie leczy problem. Mianowicie zbudowałem dimmer do sterowania fazowego, jednak problem na jaki się natknąłem to detekcja zera sieci. Układ detekcji został zbudowany zgodnie ze schematem ze strony https://obrazki.elektroda.pl/9822366100_... https://obrazki.elektroda.pl/4696795900_...
Co do kodu, to wstawię coś wieczorem, jak wrócę z pracy. Jeśli chodzi o obsługę RFM12 to mam z tego wątku [url=http://www.elektroda.pl/rtvforum/to... z przed ostatniej strony ( jest tam też zresztą kilka moich postów ), natomiast nie ma tam ważnej linijki kodu, który odblokowywał kontroler w czasie pomiędzy odbiorem danych, a który...
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...
No to jesteś akurat na styk dla "mniejszycg procesorów" (dip28) To ma być "mniejszy" procesor??... "Mniejszy" to ma 18 pinów, malutkie mają 6 lub 8... Wybacz ale mniejszych niż a8/a88 to mogę używać do migania jedną diodką albo sterowania jakimś jedym odbiornikiem, z parametrami zadawanymi przez drugiego procka (i2c/uart/1w). Może docelowo program...
Witam. Jestem początkującym w dziedzinie programowania na elektronice znam się dobrze. Chciałbym zbudować komputer pokładowy do mojej hondy civic i znalazłem na elektrodzie projekt z pod tego linku. http://www.elektroda.pl/rtvforum/topic22... Płytkę zaprojektowałem na nowo pod atmege128 reszta bez zmian. Wyświetlacz od Siemensa s65 ls020 podłączyłem...
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 kod Kolegi nanoTECHNO , głownie z powodu gotowej konfiguracji na 433 Mhz, no i sposób wysyłania. Mam płytkę nadajnika na Atmega328 ( odbiera sygnał DCF77, ma zegar PCF8563 oraz obsługuje czujniki DS18B20 ), sprzętowe SPI. RFM12 mam w wersji S, czyli SMD na 5V, wiec cały układ jest zasilany z 5V. Układ programuje się bez problemu,...
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 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...
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...
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 =...
Witam W związku z występowaniem od czasu do czasu błędów w wysyłanych danych chciałem wprowadzić wprowadzić sprawdzenie poprawności odebranych danych przez wysłanie ostatnim bajtem wartości, którą odbiornik by porównywał wartością, którą sam obliczy z odebranych danych. Nadajnik na Atmega328, w pętli głównej sumuje wszystkie wartości, które będą wysłane...
atmega128 przerwania przerwania atmega128 bascom atmega128
atmel 24c64 odkurzacz gniazdo łożysko resetowanie pojemnika tuszem epson
Volkswagen T4 2.4D 1995 – lokalizacja przekaźnika rozrusznika, solenoid, przekaźnik X Vaillant atmoMAG MAG – wymiana baterii R20 w starszym piecyku gazowym krok po kroku