o pie*.* średnik!!!!! ile ja czasu straciłem.... No a druga wpadka: w avrstudio programowanie innym wsadem (poprzednim) niż projekt.... bo trzeba wskazać - samo się nie zmienia wraz z projektem! Marek
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...
Witam, W programie przedstawionym poniżej nie zostaje wywołana obsługa przerwania. Próbowałem na innych timerach tez bez skutku. AvrStudio 6, Atmega8a, optymalizacja O2. [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include "utils.h" #include "display.h" int main(void) { LEDInit( ); Display(0); //Init Timer 0 TCNT0 = 6; TCCR0...
Bardzo dziękuję, ale jeszcze dopytam. Czy symulację należy wywołać poprzez Alt+F5 (Start Debugging and Break) bez zaznaczania punktu "break", a następnie wcisnąć pauzę w dowolnym momencie? Co znaczy kliknąć na flagę? W AVRStudio 4 jest to czerwona chorągiewka, podobnie jak w MS Outlook, ale w symulatorze AVRStudio 5 nic jej nie przypomina. Moim zamiarem...
Problem wygląda następująco. Pisze program na atmega32, gdy zostaje wywołane przerwanie od porównania dla timera 0 to program się restartuje. Jednocześnie, gdy zdefiniuje funkcje ISR(BADISR_vect) to wlaśnie ona jest wykonywana zamiast funkcji od timera :/. Gdy próbuje wywoływać przerwanie od przepełnienia timer 0 to w ogóle się ono nie wywołuje, a przerwanie...
Zrobiłem sobie programik pod Atmege8 wychylajacy serwo w jedna strone. Wiem, ze PWM można zrobić w pełni sprzętowo, ale jeszcze do tego nie doszedłem. #include <avr/io.h> #include <avr/interrupt.h> int b=0; int main (void) { DDRB |= (1 << 0); // Set LED as output TCCR1B |= (1 << WGM12); // Configure...
są 2 błędy ... (89) error: Undefined symbol: TCCR0 -->out TCCR0,temp ; Timer counter 0 prescaler (91): error: Undefined symbol: TIMSK -->out TIMSK,temp ; set timer interrupt mask nie mam pojęcia o co chodzi ... :/ Dodano po 37 poprawiłem to na out TCCR0B,temp ; Timer counter 0 prescaler i out TIMSK0,temp ; set...
Witam, tak jak napisałem w temacie - piszę programowy pwm na attiny2313. Program działa w oparciu o przerwania od przepełnienia timer0. Timer0 ustawiam w normal mode. Fusebity daję na wewnętrzny oscylator 8MHz (bez dzielenia). Z moich obliczeń wynika, że przy rozdzielczości 256 powinienem uzyskać częstotliwość 8MHz/256 = 30kHz (ok), a mierzona oscyloskopem...
Dziękuję za odpowiedź Wpisałem do programu _delay_ms(x) i wielkość kodu po tym wpisie podskoczyła prawie pięć razy, pierwsze wywołanie tej funkcji daje +~3k do wagi kodu, co dla mnie jest zastraszające, gdyż pojemność mojego procesora to 1k. Niestety mam tam tylko jeden timer i jest on już zajęty. Zastanawiam się, z czego to wynika (ten ogrom zajmowanego...
Mam taka uwage...Zrobilem sobie timer (T1) ktory mierzy do wartosci OCR1A...(atmega16, kwart 7372800 Hz, preskaler N= 8 ) Wszytko dziala tyle ze jak np chce odmierzyc jakas wartosc np 4.752ms to obliczajac ze wzoru na tryb CTC: OCR1A = Fkwarcu/ Dodano po 39 Zrobilem inny pomiar dla tych samych warunkow tyle ze symulowalem ekspymentalnie czas 1,28ms...
Nieścisle się wyraziłem, wspólczynnik wypełnienia zostawiamy w spokoju, tylko korzystamy z rejestrów od PWM ustawionych na Toggle & Reset Counter on compare match - im mniejsza wartość w TCNTC, tym wieksza częstotliwość na wyjściu . Ma to ta zaletę, że sobie działa w tle, a my zajmujemy się czym innym.... ;) No chyba, że coś pomieszałem z nowszymi...
Witam, Napisałem całkiem złożony programik w C, ale wykrzacza mi się w prostym fragmencie main'a, tzn. obsługa przerwań z timera działa, ale uC nie chce wejść do nieskończonej petli while(1). Nie działa ani w debugerze ani w rzeczywistym układzie. Pomóżcie co tu jest źle... Oto fragment Kodu w AVRStudio #include <avr/io.h> #include <avr/interrupt.h>...
Przepraszam, niefortunnie zasugerowałem się AVRStudio w wersji 5 oraz jego dokumentacji w PDF-ie. Uruchomiłem już licznik cykli w AVR Studio 4 i rzeczywiście można wyciągnąć następujące wnioski: dla kodu ze zmiennymi statycznymi są 443 cykle dla kodu ze zmienną typu "register" jest 198 cykli Dziękuję tmf za podpowiedź, rzeczywiście przyspieszyłem przerwanie...
Witam Mam kilka pytań. 1. Czy w WinAVR jest możliwe wyłączenie dodawania przez kompilator prologu i epilogu do każdej wstawki asemblerowej. A jeśli tak to jak ? 2. Jak połączyć plik napisany w C z plikiem napisanym w asemblerze. avr-gcc -Wa,-adhlns=przerwania.lst,-gstabs -Wl,-Map=pierwszy.map,--cref -lm przerwania.S -o przerwania C:/WINAVR/BIN/../lib/gcc/avr/3.4.6/../.....
Witam . Napisałem ( prawie) sobie na ww procesor program w asm i bascomie który ma robić za zamek otwierany kartą . W bascomie wszystko działa w 100 % według założenia jednak w asm mam taki problem że układ sam zmienia swoje taktowanie (ponad 2x) przez co wszystkie funkcje czasowe nie pracują jak powinny . Nie było by w tym nic niezwykłego ( ustawiony...
Witam. Pozwoliłem sobie sklecić korzystając z wszystkich odpowiedzi w tym wątku takie oto cuś: Config Portb = &B11111111 Portb = &B00000000 Config Portd = &B0000000 Portd = &B1111111 Dim Key As Byte , Tmp As Byte Config Timer1 = Timer , Prescale=1 Enable Ovf1 On Ovf1 Sprawdz_Klawisze Start Timer1 Enable Interrupts Tmp = 0 'Po starcje procka będzie "cisza"...
Funkcje do obsługi wyświetlacza pochodzą z gotowej biblioteki, którą znalazłem za pośrednictwem elektrody. Oto funkcja do wrzucania tekstu na lcd z flash procesora. Co do pamięci - avrstudio pokazuje mi że używam około 12kB flash i 300bajtów sram więc ok. Co do double i float to nie wiedziałem, że to to samo... A jakie są tego konsekwencje? Funkcja...
W takim przypadku lepiej chyba uruchomić timer żeby liczył np sekundę i co sekundę odświeżać LCD, zrezygnować z przerwań ADC i robić to w biegu (lub też timerem jedynie ustawiać flagę co np pol sekundy czy ileś tam)
Problem pewnie leży w procedurze. therm_read_temperature(temp); Tam zapewne masz jakiegoś delay-a ustawionego (na czas potrzebny na konwersje temperatury przez DS-a). Musiał byś pokombinować, żeby przebudować tą funkcję a delay-a wbudować najlepiej w obsługę przerwań z timera z którego korzystasz. Np. Timer przerywa częściej, za każdym razem...
Witam. Mam zestaw opisany jak w temacie. Programator STK200. Pojawił mi się problem który nawet trudno wytłumaczyć. Próbowałem juz nawet z drugim ATmegą i tak samo się dzieje. Nadmienię że do układu dołączam oscyloskop Hamega - sprawny i dokładny. Napisałem program z wykorzystaniem Timera T0 - odmierza zadany czas i zapala diodę po czym przy następnym...
Nie rozumiem. Dlaczego bez optymalizacji nie ma błędów i w AVR_Studio 4 też nie ma błędów? [url=http://mikrokontrolery.blogspot.com... Użyj timera, większy zysk.
Same procesory ST7 są dobre, tylko to darmowe środowisko STVD7 jest bardzo prymitywne. Może jakieś komercyjne produkty robią to o wiele sprawniej. Mnie najbardziej brakowało w symulatorze funkcji animate jaka jest np. w AVRStudio oraz brak możliwości podglądu stanu timera LITE TIMER, który i tak jest niedostępny dla programu (generuje tylko przerwania)....
#include <avr/io.h> // dostęp do rejestrów #include <avr/interrupt.h> // funkcje sei(), cli() #include <avr/delay.h> ISR(TIMER1_OVF_vect) { TCNT1=50; } ISR(TIMER2_OVF_vect) { TCNT2=0x50; } int main() { // Ustawienie licznika 2 TCCR2=_BV(CS20); // Ustawienie licznika...
Oto moja propozycja projektu do analizy kodu migającego diodką, opartego na Timer/Counter0 - AVRStudio 4.12 Plik główny "TestLED.asm".
Hmm...ale robiąc symalacje w avrstudio jest on zachowywany ... mała ściema avrstudio?
Radzę sprawdzić "na żywo", ponieważ AVRStudio ma niejakie problemy, z symulacją Timerów. Jest to zależne od rodzaju symulowanego uC, jak i od trybu pracy timera - nie ma reguły.
Mogę go sprawdzić, ale równie dobrze też możesz odpalić symulator. AVRStudio (symulator) róznie obsługuje timery, ale dla najbardziej popularnych procków (czyli Twego) nie powinno być bugów. Też mi się nie podoba wpisywanie dwa razy do tego samego rejestru danych, skoro można zrobić to w jednej linii... to świadczy o jakości programisty :) Pozdrawiam
Witam ponownie. Pomimo iż posiadam już lekturkę, siedzę nad Timer'em1 w trybie licznika już 2 dni nie bardzo nadal wiem co i jak... nie wspomnę, że z trybem CTC też próbowałem. Mianowicie; nie wiem dlaczego, nie mogę osiągnąć odmierzania równo 1 sekundy w zmianie stanu LED, gdzie robię błąd ? Oto kod; Dodano po 9 Jeszcze jedna drobna uwaga, #define...
W przypadku ATmega16, niestety, jest pewna niespójność pomiędzy dokumentacją oraz np. symulacja w AVRstudio. Dotyczy ona np. zarządzania Timer'ami.
Dziękuję za odpowiedzi. Wartości, które podałem były zgrubne i orientacyjne - nadal za duże wartości do moich zastosowań. Spróbuję z tymi timerami i przerwaniami.
Dzięki za podpowiedzi. Nigdy nie dołączałem modułów w assemblerze do moich projekcików i nie wiem czy dobrze zrobiłem. Nie mam w tej chwili platformy sprzętowej ale sprawdzałem zaproponowane rozwiązanie w symulatorze AVRStudio. Dodany plik przerwania.s: #include <avr/io.h> .section .text .global TIMER0_OVF_vect .global TIMER0_COMPA_vect ;kod TIMER0_OVF_vect:...
Tutaj popełniasz dosyć poważny błąd. Po odebraniu pierwszego bajtu zatrzymujesz transmisję na SPI na stosunkowo długi czas potrzebny na przesłanie tego bajtu poprzez USART. Nie to jednak jest najgorsze. Po dokładniejszym przeanalizowaniu noty ADIS16100 zauważyłem dwa dosyć ważne problemy. Pierwszy to taki, że stosunek czasu trwania stanu wysokiego...
(at)poorchava - a co polecasz 13latkowi, który zaczyna eksperymentować z uC? BASCOM w tym momencie daje najwięcej oczekując najmniej. Oczekując najmniej od programisty oczywiście. Od MCU wymaga całkiem sporo, jako (moim zdaniem) dość ciężki do zoptymalizowania przez kompilator język. Niemniej można zrobić łatwo i przyjemnie dużo rzeczy bez potrzeby...
Nie avrstudio5! To jest beta- w dodatku schrzaniona. Ściągnij normalne 4.18.
Wg mnie przerwanie od Timera0 ma wyższy priorytet i stąd tak się zachowuje, może się mylę. Spróbuj takiej opcji[syntax=c]ISR(XXX_vect, ISR_NOBLOCK) { ... } [/syntax]
Nie majstrujesz czasem przy Timerze 2? Jeżeli ustawi się odpowiedni bit( patrz datasheet) to te końcówki przestają być I/O.
W C pisać. W asmie tylko dla tych co mają za dużo czasu.... Nie radze sie brać akurat za asma do AVR....jest on dosyc dziwny i nietypowy, duzo instrukcji a wiekszosc z nich nie sluzy do niczego konkretnego i trzeba sie nakombinować sporo.... Podpowiedź: BROŃ BOŻE NIE BASCOM!!!..... ...i nie zaden basic, to juz kompilatory pascala pod avry są lepsze......
mam tak: .org 0 rjmp reset ;po resecie .org $002 rjmp detekcja0 ;przerwanie od detektora zera .org $012 rjmp timer0;przerwanie od timera .org 40 reset: program i ten kod nie działa a ten działa: .org 0 rjmp reset ;po resecie .org $002 rjmp detekcja0 ;przerwanie od detektora zera .org $030 rjmp timer0;przerwanie od timera .org 40 reset: program...
http://mikrokontrolery.blogspot.com/2011... Sporo o delay. Osobiście uważam, że delay wszelakie jest złem, nie mówię o opóźnieniach typu 1-3 nopy :) Jeśli chcesz wygenerować jakiś przebieg, tym bardziej prosty to od tego są timery.
Za późno, już zrobiłem i działa:) Po 20 sek. wyłącza podświetlanie wyświetlacza, po 1 min. wyłącza urządzenie. Naciśnięcie dowolnego klawisza włącza podświetlanie ekranu i kasuje liczniki timera:) Ale zajrzę do ATOMIC_BLOCK, bo może rzeczywiście wyskoczą obelgi;)
Prosty program na AVRStudio : #include <m16def.inc> ; Prohibits use of non-implemented instructions (ATmega16) .dseg .org SRAM_START .cseg ;—————R...
A no dla tego, że pomiar temperatury jest częścią większego projektu, gdzie procesor odmierza czasy rzędu pojedynczych do 30 minut. A przy jednym MHz z timera 16 bit, przy preskalerze 1024 można uzyskać około 60 s co idealnie pasuje do innych procedur. Stąd mam narzucony taki wymóg zegara.
Witam Mam problem z timerem 1 trybem CTC w ATmega128. Kod wyglada tak #define _20_MS_ 5000 void servo_init(void) { SERVO_DDR|=(1<<SERVO_PODSTAWA_... SERVO_DDR|=(1<<SERVO_RAMIE_PIN... SERVO_DDR|=(1<<SERVO_LOKIEC_PI... SERVO_DDR|=(1<<SERVO_NADGARSTE... SERVO_DDR|=(1<<SERVO_CHWYTAK_P...
plik makefile tworzony jest automatycznie z avrstudio. Da się z poziomu avrstudio to ustawić w konfiguracji projektu? Ważne dla mnie jest, aby stos był w wewnętrznej pamięci, ponieważ cały program będzie się głównie opierał na przerwaniach i to kilku (bo Int0, dwa timery, ADC, ew USART). Chciałbym się właśnie nauczyć obsługiwać xram a nie znalazłem...
Witam Pisałem już w innym dziale na podobny (łączący się problem) z działaniem wyjścia z TxD z układu, jednak udało mi sie go rozwiązać, więc stanąłem przed obliczem drugiego problemu (chyba). Jestem w trakcie poszukiwania błędu w transmisji szeregowej, na chwile obecną wysył. Nie używam przerwań, timerów itd, bo wszystko może działać po chamsku, z...
jak mam pisać w tym całym avrside i symulowac w avrstudio to juz wole od razu pisać w asm bo przynajmniej kod bedzie czytelniejszy i bede wiedział gdzie w procedurce mam błąd. Szanowny kolega próbował dłuzej niz minut kilka w najnowszym AVRStudio symulacji z plików .elf, że tak narzeka ? A jak nie pasuje analiza kodu C to można odpalić okno disasemblacji......
Nową wartość dla OCR wpisuj w przerwaniu Overflow, a nie CTC. W przypadku Timer1 dla obu OCR1A i OCR1B jednocześnie (prawie ;) )...
Nie bylo sensu wiecej pisac. Zrszta i tak daleko nie zaszedlem, byla obsluga timera, ktora probowalem przerzucic z main'a do funkcji (mrugala sobie diodka) i po kawalku eliminowalem fragmenty kodu, a do funkcji i tak nic nie wchodzilo. Jezel to nie procek to ustawienia. ;(
Piszę program w AvrStudio, lecz wyskakuje mi dziwny błąd. Chcę wykonać skok do etekiety a kompilator wyrzuca mi dwa błędy: 1 etykieta jest zdefiniowana ale nie użyta 2 etykieta jest użyta ale niezdefiniowana W załączniku zrzut ekranu, a poniżej podaję kod: #include <stdio.h> #include <avr/interrupt.h> #include <avr/eeprom.h> #include...
...Ciekawi mnie ten fakt i nie umie sobie poradzic z tym problemem a w mym programie wskazany jest wlasnie podzial przez 256. Prosze o pomoc Nie ma w tym żadnej tajemnicy ;) Poprostu , symulator Bascoma nie jest ideałem i ... to wszystko. Do symulacji wykorzystuj symulator z AVRStudio.Mimo iż ów nie jest pozbawiony błędów , to wydaje się , że ma ich...
avrdude avrstudio kompilacja avrstudio konfiguracja avrstudio
satel micra jedna czujka transit drzwi pilota zasilanie zmieniarki blaupunkt
hydrostat zmywarki samsung saunier duval wymiana pompy
Schemat elektryczny wyłącznika Amica 57GE333HZPTADAQXX Discman przerywa przy ruchu lub stukaniu - przyczyny