Witajcie. Robię bliźniaczy do wykonanego przeze mnie na '51 projekt układu do pomiaru częstotliwości na AVR w C. Przyjęta przeze mnie logika to: ATMEGA8 - kwarc 10 MHz 1. podawanie sygnału badanego na wejście INT1 2. Timer1 jako licznik z preskalerem CK/1024 2. INT1 wyzwalane zboczem opadajacym 3. Gdy przyodzi przerwanie to nastepuje sprawdzenie czy...
Jeżeli chodzi o pierwszy warning w tej bibliotece dotyczy SIG_USART_TRANS w sekcji __AVR_ATmega169__ [syntax=c] /* * FreeModbus Libary: AVR Port * Copyright (C) 2006 Christian Walter <wolti(at)sil.at> * - Initial version + ATmega168 support * Modfications Copyright (C) 2006 Tran Minh Hoang: * - ATmega8, ATmega16, ATmega32 support * - RS485 support...
Witam. Pewnie zabrzmi to głupio aczkolwiek lubię się upewnić czy pewne rzeczy robię dobrze czy też źle. Jako iż nie dysponuję w tym momencie pod ręką programatorem to nawet nie mogę sprawdzić czy dobrze piszę czy nie. Rozchodzi się o zmianę programu napisanego na Atmegę16 tak aby pasował do Atmegi8. Jest to nadajnik podczerwieni o określonej częstotliwości...
[syntax=c]/* * FreeModbus Libary: AVR Port * Copyright (C) 2006 Christian Walter <wolti(at)sil.at> * - Initial version + ATmega168 support * Modfications Copyright (C) 2006 Tran Minh Hoang: * - ATmega8, ATmega16, ATmega32 support * - RS485 support for DS75176 * * This library is free software; you can redistribute it and/or * modify it under the...
Witam wszystkich. Zaprojektowałem i uruchomiłem zegarek z wyświetlaczami LED(SA10-21GWA) i układem PCF8583 współpracującym z mikroprocesorem Atmega8 oraz układami PCF8574AP na szynie TWI(i2c). A teraz chciałbym go wam zaprezentować. Na początek podręcznik języka C w formie pliku pdf -> 'C.pdf' i plik -> 'atmega16mmr.pdf' ,oraz obrazki -> 'Atmega8.gif'...
Witam, Już od dość długiego czasu mam problem ze sterowaniem silnika używając mikrokontrolera Atmega16A. Myślałem, że wina leży w kodzie programu, ale wysłałem zapytanie do AvrFreaks i tam nic złego nie znaleźli. Wniosek: Najprawdopodobniej wina leży w elektronice. Konfiguracja: Atmega16A, 8MHz kwarc, FUSE: wyłączony JTAG, CKSEL3..0=1111, CKOPT=0,SUT10=11...
Witam, od paru dni walczę z postawieniem komunikacji po modbusie RTU, przez RS485 przy pomocy biblioteki freemodbus v1.5. Po wielu próbach i przeglądaniu forum w poszukiwaniu informacji udało mi się poprawnie skompilować i wgrać program, jednak przy próbie skomunikowania się z atmegą (odczytania rejestru o adresie 1000 lub 1001) albo nie odpowiada wogóle...
Dzięki. Wczoraj problem się rozwiązał. Light-I Masz rację połowicznie. Samo wyzerowanie xxxxx000 w TCCR1B nie zwalnia portu z PWM. W moim wypadku powodowało to, że silnik dalej się kręcił tyle, że z max prędkością już. Musiałem zwolnić port żeby ustawić odpowiednie stany (TCCR1A = 0000xxxx). Wyszło na to, że muszę stosować oba rozwiązania opisane wyżej...
Witam, na wstępie poszukiwania Google nic nie dały... Jaki mam problem - sterowanie jasnością dwóch żarówek (niezależnie) poprzez opto i triak z TIMER1 (OCRA/OCRB) Atmega. Programuję w Assemblerze. Wykonałem to jako fastPWM dla TIMER1 z wartością TOP w ICR1 i wartościami dla jasności w OCRA i B. Wykrywanie narastających i opadających oblicza czas połówki...
Dziekuję Bede testował :) Dodano po 3 No nie do końca to chce działać tak jak napisaliśmy... bascom nie przyjmuje składni timer + clear_up ale problem okiełznałem na dwa sposoby... Bascomowy: [syntax=vbnet] 'puść timer z generacja comapre Config Timer1 = Timer , Prescale = 1 , Compare_A = Toggle ,Compare_B = Toggle , Clear_Timer = 1 'zapisz wartość...
Zacznę od zamieszczenia kodu źródłowego i schematu: ' ########################################... ' # Control Programm for Trolling Motor Driver # ' # (C)2008 by Tomasz Orczyk # ' ########################################... $regfile = "m8def.dat" $crystal = 8000000 'CKSEL3..0=0100 - 8MHz Internal (PWM ~30kHz) 'SUT1..0=01...
To na razie wersja robocza więc sporo niedociąnięć, muszę jednak zacząć rezygnować z bascoma. Niby już wszystko było OK, ale gdy tylko w pętli głównej przed wyświetlaniem chciałem zamaskować wynik poleceniem fusing, znów jakieś głupoty zaczęły się dziać. Nie mam już nerwów. $crystal = 8000000 $regfile "m16def.dat" '*********************zmienne***********...
Dobra. Kod prezentuje się następująco: to jest program w którym wszystko działa jak potrzeba: [syntax=cpp]//Data utworzenie: 20-09-2014 #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <avr/pgmspace.h> #include "MYUART/myuart.h" #include "MK_TERMINAL/mk_term.h" #define REF_256 (1<<REFS1)|(1<<REFS0)...
Witam, Mój problem jest dziwny. Mam przetestowany układ na płytce stykowej, program też działał bez zarzutów. Wykonałem PCB złożyłem, ATmega normalnie została zaprogramowana i reaguje. Zczytałem pomiary temperatury przez UART- też działa. Obecnie sterowanie jest dwustanowe, docelowo będzie PWM i PID. A teraz moje 2 problemy: 1) Sterowanie MOSFETEM....
Dobry wieczór, krótko : - program z wykorzystaniem ATmega16L + hc-sr04(ultradźwiękowy czujnik odległości) - mam problem z wyświetlaniem znaków bo powinno pisać : CIRCUIT DIGEST/DISTANCE=[i tu odleglosc w cm] - jest napisane CKSCWKT DKGGST/DKSTCOCG?33CM - na schemacie jest ATmega32 ja mam ATmega16 - jakie mogą być przyczyny błędu ? programator w Eclipse...
Witam wszystkich. Podczas dzisiejszej zabawy z Atmegą32a napotkałem 2 problemy. Jeden, to dziwnie działający UART: Przy takim kodzie: [syntax=c]#include <avr/io.h> #include <util/delay.h> #define PWM_A (1<<PD4) #define PWM_B (1<<PD5) int a = 0; #define USART_BAUDRATE 9600 #define BAUD_PRESCALE (((8000000UL / (USART_BAUDRATE *...
Witam. Piszę program do obsługi LCD. Piszę w asm i pod ATmega32. Przerwy czasowe chcę zrealizować za pomocą liczników. Program dla sprawdzenia inicjacii - nie pełny i nie działa właściwie - napisany dla próby. Napisałem początek programu i chciałem go zasymulować ale wciąż pojawia mi się ten sam błąd z którym po raz pierwszy się spotykam i nie wiem...
Witam, Mam pewien problem powiazany z UARTem pod atmega8l... Otoz mam pewnien program ktory pieknie dziala pod attiny2313(UART sprawny, komunikacja rs232<=>pc tez dziala dobrze). Problem narodzil sie, gdy chcialem przeniesc ten program na atmege8l... Podejrzewam, ze problem lezy we flagach... Nie znam sie jeszcze na tyle dobrze na C, zeby problem...
Witam, Mam nastepujący problem z PWM. Pracuję na Atmega16. Oprócz tego używam AVRStudio w wersji 4.13 oraz WinAvr 20070525. Mój kod wygląda następująco: #include <avr/io.h> void main(void) { DDRB=0xFF; DDRD=0xFF; TCCR1A=0x83; // wy. jest ustawianie po osiągnięciu warunku // równości podczas zlicznia w dół // zerowane po osiągnięciu warunku równości...
... Skoro się nie da w ten sposób wykonać generatora ... A kto powiedział , że sie nie da :?: Oczywiście , że się da ;) '... Set TCCR1B.WGM12 'Tryb CTC Set TCCR1A.COM1A0 'OCR1A- tryb toggle Set TCCR1A.COM1B0 'OCR1B- tryb toggle Set TCCR1A.FOC1A 'lub FOC1B '...
Witam, Mam problem z timerem1 - timer pracuje w trybie CTC (4), wartość wpisywana do rejestru OCR1A jest wcześniej odczytywana z przetwornika ADC (potencjometr). Problem występuje podczas zmiany tej wartości - timer tak jakby się przycinał (ale tylko czasami) - nie zgłasza przerwania przez pewną chwile, żeby zaraz zacząć normalnie pracować. Np. po takiej...
Witam Od jakiegoś czasy chce zrobić zegarek na atmega8. Do odliczania sekund użyłem unsigned int i=0; void wait(long t) { long cnt = 0; TCCR1A = 0; TCCR1B = 3<<CS10; TCNT1 = 0; TIFR |= (1<<TOV1); while(cnt < t) { if(TIFR & (1<<TOV1)) { cnt += 65536; TIFR |= (1<<TOV1);...
Witam. mam mały kłopot z przerwaniami w bootloaderze na wymienionym procesorze (dataszit o ile mnie oczy nie mylą, mowi ze adresacja sekcji pamieci flash jest taka sama jak w zwyklej atmedze8) proc ustawiony na wielkosc sekcji boot na 1024 słowa, po resecie wskakuje do bootloadera. program skompilowany pod 0xC00 czyli w makefile de facto adres .text...
Witam, Robiłem to kilkanaście razy na innych procesorach, a nie mogę zrobić na ATmega88PA. link do DSa: opis rejestrów TIMER0 na stronie 105 Timer1 i Timer2 mam ustawione w trybie PWM i działają bez zarzutu. Walczę już 2 dzień i nie rozumiem pewnych mechanizmów. - włączenie Timera0 powoduje, że pętla główna nie działa... Do portu PC0 (TQFP32) mam podłączoną...
Musisz się zapoznać z rejestrami jakie posiada Atmega8. Nie posiada np rejestru TCCR2A tylko TCCR1A, tak samo nie ma rejestru COM2B1 tylko jest COM1B1. Otwórz datasheet na stronie 96 i poczytaj. Lub spróbuj pozmieniać wszystkie cyfry '2' w nazwach rejestrów na '1' tak jak napisałem na początku.
witam napisałem program w którym dokonuje pomiar poprzez sonar ultradzwiekowy uzywając komunikacje SPI ale niestety problem polega na tym że nie zależnie od odległości przeszkody silniki cały czas pracują tak samą prędkością. Dodano po 40 Jestem zielony w wskaźnikach i komunikacji SPI .Więc to mogłem jedynie źle zrobić.
Cześć. Od około dwóch tygodni pracuję nad układem, którego głównym zadaniem jest jak najdokładniejszy pomiar czasu propagacji fali ultradźwiękowej między dwoma membranami piezoelektrycznymi. Układ jest zbudowany zgodnie ze schematem blokowym przedstawionym poniżej: Mikrokontroler to Atmega328 z Arduino Uno, wzmacniacz jest zbudowany zgodnie ze schematem:...
Cześć wszystkim! Projektuję właśnie prostą konsolę do gier wykorzystującą monitor VGA i opartą na ATmedze644PA. Tak tak, wiem że generowanie sygnału VGA to zadanie dla układów typu FPGA, ale odrobina szaleństwa jeszcze nikomu nie zaszkodziła :) Tak więc, ATmega644 służy do generowania sygnału VGA. Klatki są przechowywane w pamięci RAM (układ AS6C1008)....
Ok, sprawdziłem. W trybie z korekcją czegość takiego nie ma. Używam teraz tego trybu, bo nie wiedziałem jak wyłączyć te COMy, zeby bylo automatycznie... Teraz druga sprawa: mam dwa przyciski na przerwaniach INT0 i INT1, ale mi one w ogóle nie działają. Celem głównym jest osiągnięcie przechodzenia w tryb uśpienia i jego budzenie, ale jak już wspomniałem,...
Buduję pewien układ zawierający dwa mikrokontrolery ATMega328. Nazwijmy je A i B. Mikrokontroler A ma kwarc 16MHz, a mikrokontroler B ma kwarc 8MHz. Mikrokontrolery są połączone przewodem 4-żyłowym o długości ok. 30cm, z których dwie żyły to zasilanie i masa, trzecia żyła łączy B0 mikrokontrolera A z C4 mikrokontrolera B, czwarta żyła łączy B1 mikrokontrolera...
Trochę mi zeszło z próbami, ale jest tak: z przerwaniem dałem sobie radę. Musiałem wyrzucić NOSAVE, PUSHALL i POPALL, bo z tym nie chciało działać. Działa też timer1 i ustawia OC1A na 0. Problem w tym, że potem nie mogę ustawić tej końcówki na 1. Testowałem to poniższym kodem i nic. Jak ustawiłem Tccr1a = 64 wtedy końcówka się przełącza, czyli Timer...
Witam wszystkich, Na wstępie od razu napiszę ,że czytałem już wiele na ten temat na avrfreaks i tutaj też ,jednak nie znalazłem odpowiedzi na swoje pytanie .Jeśli dubluję jakiś temat przepraszam ,ale uwierzcie że zadałem sobie troche trudu by poszukać w necie i samemu to rozwiązać. Piszę w C ,na darmowy kompilatorze winAVR ,mam zestawik z BTC .Testuje...
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...
...Proszę o jakieś podpowiedzi bądź kawałek kodu co ma być dalej, żeby generować te nieszczęsne 40kHz ... To już wszystko :) Na pinie PB1 masz przecudne 40kHz , jeśli faktycznie procek jest popędzany 8MHz. W ramach testu , możesz w pętli głównej napisać: Do Set Tccr1a.com1a0 'dołącz oc1a do pinu Wait 5 'przez 5 sekund fala 40kHz Reset Tccr1a.com1a0...
Witam, Mam też problem z PWM tylko trochę innego rodzaju. Też pracuję na Atmega16. Oprócz tego używam AVRStudio w wersji 4.13 oraz WinAvr 20070525. Mój kod wygląda następująco: #include <avr/io.h> void main(void) { DDRB=0xFF; DDRD=0xFF; TCCR1A=0x83; // wy. jest ustawianie po osiągnięciu warunku // równości podczas zlicznia w dół // zerowane po...
Witam. Mam problem z PWM w ATMega32. Posluzylem sie gotowym programem z ksiazki "Mikrokontrolery AVR w praktyce" J.Dolinskiego.Problem polega na tym, ze nie moge zmieniac wypelnienia PWM za pomoca przyciskow klawiatury.Podlaczony do zestawu ZL10AVR oscyloskop caly czas pokazuje stan wysoki.Ponizej umieszczam kod programu. #include <avr/io.h> void...
Witam. Mam problem z przetwornikiem A/C w ATmega16. Chciałem aby wyniki były wyświetlane tylko w momencie kiedy wartość w timerze 0 zrówna się z wartością w OCR0 - ale tylko co drugi raz. Dlatego też dałem switch(cykl). Wyjście OC1A jest podpięte do wejścia timera 0. Wiem że to dziwnie, ale jest to część większego programu i tak musi być. Pomiar napięcia...
Witam, mam pytanie, czy ktoś robił przetwornice do podświetlania LCD (S65) ale z 3V, a nie z 5V. Zrobiłem dokładnie taką jak na ogólnodostępnym schemacie (dławik, dioda, tranzystor) i przy L=680uH maksymalne napiecie jakie udało mi sie uzyskać to 9,5V. Proszę o pomoc, bo już wymiękam :( procek chodzi na 8MHz PORTB &= ~_BV(PB1); DDRB |= _BV(PB1);...
Witam Niestety mam 2 problemy: 1. Rezonator 4Mhz, AtMega32. Chodzi o obsługe przerwania Timera1. Chcialbym aby przerwanie bylo generowane co 1s. Niestety dla ustawień: TCCR1A=0x00; TCCR1B=0x04; // Prescaler 256 TCNT1H=0xC2; // Wartosc poczatkowa TCNT1L=0xF6; nie działa poprawnie, odlicza zbyt szybko. 2. CodeVision . Chciałbym wyświetlić tekst + liczbę...
Podłaczenie to: Atmega128L, port PB6-rezystorek-dioda(katoda w stronę procka-zasilanko 5V int main(void) { // konfiguracja portów we/wy DDRE=0xFF; PORTE=0xFF; DDRB=1<<PB6; TCCR1A|=1<<COM1A1|1<<WGM10; TCCR1B|=1<<WGM12|1<<CS0; TIMSK=1; TCCR0=7; sei(); // inicjalizacja LCD lcd_init(); LCDclr();...
Witam, Chciałem zrobić opóźnienia w programie dla Atmega8. Wykorzystałem przerwania, ale przy symulacji programu w AVR Studio okazuje się że program po około 260 mikro sekundach resetuje się(wraca do funkcji main() ). Nie jet to spowodowane raczej watchdogiem bo jest on wyłączony. Czy ktoś potrafi mi powiedzieć dlaczego tak się dzieje? Aha, oczywiście...
Pracuję nad elektronicznym układem wyprzedzenia zapłonu. Układzik elektroniczny z programem typu: PORTD=~PINC działa bez problemu, ale jak już "skomplikowałem program to ni hu hu" Zachowuje się tak jakby nigdy nie występowała jedynka na PINC0, 1, 2. Jak najlepiej wyłapać to zdarzenie W załączniku układ elektroniczny. A teraz kod: #define F_CPU 12800000L...
rpal ale właśnie mam w kodzie odblokowane przerwania sei(); Zmieniłem zadania Timerow. Teraz Timer1 służy do PWM, a TImer2 do zliczania czasu w dekodowaniu RC5. Proszę jeszcze raz o sprawdzenie kodu //ATmega8L kwarc 4MHZ #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> volatile uint16_t g_licznik = 0; ISR (TIMER2_COMP_vect)...
2. mirku, fajnie jest tak jak piszesz ale w dowolnym projekcie nie wiesz z góry, które bity będą jedynkami a tu zauważ jest wszystko po kolei :), po Twojemu się tak nie da. Nie, no zaraz - jak to nie wiem z góry, które będą jedynkami. To chyba podstawa np gdy chce się ustawić jakiś tryb timera np ten CTC, to patrzę do noty i sprawdzam które bity WGM...
Witam, Jestem początkującym w temacie, napisałem sobie sterowanie 8 serwami, ale chciałbym to robić bardziej dokładnie przy użyciu trybu CTC timera1 i sprzętowego rejestru przesuwającego. W następujący sposób go inicjalizuje // na początek włączamy tryb czasomierza i ustawiamy wyjscie na 0 w trybie normalnym TCCR1A = 0x00; // tryb czasomierza TIFR &=...
Witam. Kombinuję już od jakiegoś czasu nad włącznikiem RC ale nie typu on/off tylko w zależności od zapotrzebowań, tyle ma być stanów. Na chwilę obecną docelowo mają to być 3 stany off/1/2. Wygrzebałem w googlu kawałek kodu, który jest odpowiedzialny właśnie za pomiar długości trwania stanu wysokiego na wejściu ICP1 (input capture). Jednak za żadne...
witam, próbuję osbłużyć akcelerometr ADXL345 po i2c, ale komunikacja zawiesza się po pierwszej komendzie i w ogóle program nie wchodzi do pętli while(1). jak zakomentuje linijkę: i2cTransmit(ADXL345, POWER_CTL, 0) w mainie; to ATmega wysyła po USARCIE dane bez problemu, w przeciwnym razie zawiesza się. o to listing programu: ATmega168 + 20 MHz, na samym...
Witam, męczę się już któryś dzień nad nową Atmegą128 i gdy nic nie znalazłem na forum co by mi pomogło postanowiłem zadać pytanie. Czemu ten uC nie wchodzi mi w przerwanie? Napisałem prosty program testowy, steruje on silnikiem krokowym, po określonej liczbie impulsów ma zmienić ICR1 co powoduje wzrost częstotliwości a zarazem prędkość obrotową, na...
Witam forumowiczów :D! Tworze projekt na zaliczenie - prostą perkusje elektroniczną, która posiada 12 przycisków, czytnik kart SD i wyjście PWM podpięte przez wzmacniacze do gniazda jack. Wszystko do momentu odtwarzania dźwięku działa poprawnie - wartości z pliku czyta prawidłowo (przetestowane na diodzie). Problem pojawia się gdy zaczynam odtwarzać...
Witam. Chce uruchomić dekoder kodu Sirc(sony) na atmega8. Korzystam z tego rozwiązania [url=]Link, mam podłaczony TSOP1736 do wejścia INT0, zmianie pinów w kodzie na INT0 dla atmegi8 i odpisaniu F_CPU na 8mhz, za żadne skarby nie chce mi to się uruchomić, czy ktoś jest w stanie mi pomoc? Zaznaczam że jestem początkujący. Tak wygląda mój kod, po przerobieniu....
Witam. Dopiero zaczynam przygodę z avr i postanowiłem zrozumieć PWM. Jednak niestety teoria nie idzie w parze z praktyką. Chciałem wykorzystać kod "lampka led rgb" projektu pawła.kn z Attiny2313, na swoim Atmega8. Jednak poległem przy zamianie adresów timerów. Mój kod: [syntax=c]#include <avr/io.h> #include <util/delay.h> #define GREENout...
Witam, TRoszkę walczę z PWM na procesorze Atmega644. Niby wszystko jest Ok, bo ładnie reaguje na zmiany w rejestrach, ale... no właśnie jest jedno ale. Nie mogę ustawić "zera" na wyjściu. Nawet jak wpiszę w OCR1A=0, to jedna szpila jest wystawiana (wypełnienie 0,6%) i nie mogę sobie z tym poradzić. Wszystko ustawiam standardowo. To samo dzieje się i...
U mnie (Katowice) z DCF77 nie ma problemu, oczywiście zdarza się, że przez jakiś czas nie działa, ale przecież nie musi - wystarczy że złapie sygnał od czasu do czasu. Z tego co zauważyłem, to strasznie przeszkadza w odbiorze DCF77 komputer. Kiedy miałem zasilane układy przez USB to generalnie był problem, gdy je zasilałem osobno - z sieci lub z baterii...
Mam dziwny problem z timerem T1 w procesorze Atmega644P. Procesor taktowany kwarcem 18432000Hz. Timer zainicjowałem jak widać w kodzie poniżej: [syntax=c]ISR(TIMER1_COMPA_vect) { PORTB ^= 1<<2; //LED } int main(void) { PORTB = 0; DDRB = 1<<2; OCR1A = 4499; //18000/4500=4 = przerwanie co 0.25s OCR1B = 0; TCCR1A = 0; //18432000/1024=18000...
Witam, postanowiłem napisać, gdyż dzisiaj bawiłem się mikrokontrolerem ATmega328p, a konkretnie timerem 1 w trybie PWM. Ustawiłem go tak aby mieć jak największą rozdzielczość, czyli żeby zliczał do ICR1 (mam wtedy 16 bitów). Z grubsza fragment kodu odpowiadający za generację PWM wyglądał więc tak: [syntax=c] TCCR1A|=(1<<COM1A0)|(1<<WGM1...
O K Widzę,że sam muszę sobie odpowiedzieć. Po żmudnych próbach z konfigurowaniem PWM w Bascomie doszedłem do wniosku, że żadna z wersji tego kompilatora nie jest w stanie prawidłowo skonfigurować PWM na procesorze ATMEGA. Trzeba to zrobić przez bezpośrednie oddziaływanie na rejestry. Np.: $regfile = "m16def.dat" 'Deklaracja rodzaju procesora Ddrd =...
Hej Już teoretycznie wiem o co chodzi. Odwiedziłem FAQ i znalazłem coś takiego: //PWM dla wyjscia PB3 (OC1B). //PB3 wyprowadza sygnal PWM, ktory nalezy podac na uklad calkujacy RC, aby otrzymac sinusoide. //Zastosowano AVR ATtiny26. #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <avr/pgmspace.h>...
Witam W dokumentacji napisane jest, że preskaler dla TIMER0 i TIMER1 jest wspólny. Ustala się go w TCCR0 (TIMER0) albo TCCR1B (TIMER1). Nie mogę znaleźć informacji z którego rejestru ustawianie ma wyższy priorytet (jest ważniejszy) czy TCCR0 czy też TCCR1A. Sprawdziłem, że kolejność ustawiania rejestrów nie ma znaczenia. Może ktoś wie jak to działa??
#include <mega8.h> #include <stdio.h> #include <delay.h> #include <math.h> // 1 Wire Bus functions #asm .equ __w1_port=0x15 ;PORTC .equ __w1_bit=5 #endasm #include <1wire.h> unsigned int status=0, error=0; int temperatura=0, temperatura_zadana=0; unsigned char rom_codes[5,9]; unsigned char devices, ii; int ds1820_status=1,...
Witam. Chce odkuryć temat. Mianowicie mam podobny problem. TSOF1736, ATmega8, standardowe taktowanie 1MHz, rezystor 3k pullup, int0. Zmienilem prescaler w tym programie z 8->1, oraz poprawilem wlaczanie przerwania od przepelnienia, wiec czasy powinny sie teraz zgadzac. Moj makefile: PRG= led OBJ= led.o MCU_TARGET = atmega8 OPTIMIZE = -O2 DEFS = LIBS...
hym.. komendy jak sie zabrac, bedzie trudno. Napisz moze o jaki jezyk chodzi, jesli o c, to mozesz sobie psoterowac jasnoscia swiecenia: Ustawienia wieszosci w tym przykladzie nie sa jedyne mozliwe, zeby to rozszyfrowac najlepiej zajrzyj do datasheet od AtMega8. Oczywiscie zmiana wypelnienia odbywa sie na odpowiednim pinie- tutaj powiazanym z drugim...
"z tym serwem są problemy" - może uszkodzone, ja mam sześć sztuk TowerPro (może nie ten model) i wszystkie działają, tylko trzeba im sygnał podać. Co do sterowania: Jeszcze sugestia żeby serwo i układ zasilać osobno ze wspólną masą. Kod, zaznaczam że pisany dawno i NIE PAMIĘTAM CZY DZIAŁA!! (chyba lepsze niż nic): // Jeden master przekazuje wiadomosci,...
Mam problem z uruchomieniem prostego programu na ATMEGA8. Mega jest podpięta z SN75176 (odpowiednik MAX485) i mam podłączone dwie takie płytki. Każda płytka ma przycisk i element wykonawczy (triak). Program ma za zadanie zbierać informacje z sieci (gdy wciśniemy przycisk na płytce B, powinien się załączyć triak na płytce A i odwrotnie) i w razie potrzeby...
Który kod jest Twoj? Spróbuj ustawić fast PWM. Czyli aby wybrać tą opcję musisz ustawic bity WGM12 i WGM10 w rejestrze TCCR1A, datasheet strona 107 :D Mi sie udało obsłużyć wav 44100Hz stereo na Atmega88, zegarze 8Mhz i nawet nie najgorzej gra ale na Fast PWM bo na zwykłym strasznie piszczało i charczało ;p na wyjsciu mam tylko jeden tranzystor żeby...
Mógłby ktoś z was zerknąc w mój kod i sprawdzić co jest nie tak?? /***************************************... Chip type : ATmega8L Program type : Application Clock frequency : 8,000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256 ****************************************... #include...
Witam. Mam Pewien problem odnośnie PWM w ATmega8. Oto fragment programu testowego #include "avr/io.h" int main() { OCR1B=120; OCR1A=50; DDRB=0xff; DDRC=0x00; PORTC=0xff; TCCR1A |=(1<<COM1A1) | (1<<COM1A0) |(1<<COM1B1) | (1<<COM1B0) |(1<<WGM10)|(1<<...
... TCCR1B |= ((0<< WGM11)|(0<< WGM10)); ... ORując z zerem, w zasadzie robi się nic. Równie dobrze wszystkie liczby można mnożyć przez 1 i dodawać do nich 0 Byłoby gorzej, gdyby faktycznie spróbować coś wpisać do bitów WGM11 i WGM10, które są przecież w TCCR1A, a nie w TCCR1B ;). Dodano po 13 A z drugiej strony-...
Witam kolegów, sprawdzałem na różne sposoby, int0 ma mi dodac do pozycja++; ale nie dodaje... prosze o oswiecenie ;) /* układ ATmega 1MHz */ /* servo by dex */ #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> unsigned int roznicapozycji; unsigned int wynik; unsigned int dolnyzakres; unsigned...
układ został w całości zmontowany. niestety po uruchomieniu jest cicho i głucho. próbowałem uruchomić poniższy program z PWM (na diodach działał): [syntax=c] #include <avr/io.h> int main() { DDRC = 0xFC; //klawiatura PORTC = 0xFF; DDRD = 0xFF; PORTD = 21; // stan wysoki na OCR1A i PD4 TCCR1A = 0b10000010; TCCR1B = 0b00011001; TCNT1 = 0; OCR1A...
Witam.. Szybkie pytanie: Płynnie gasi, a nie rozjaśnia? tylko jest skok do pełnej jasności? [syntax=c] #include <avr/io.h> #include <util/delay.h> /* ----------------------------------------... */ /* Definicje stalych i makroinstrukcji */ /* ----------------------------------------...
Witam mam problem z chyba skonfigurowaniem przerwań w "C" do tej pory takie "zabawy" robiłem w bascomie ale tam to każdy potrafi ;) mam przerwanie int0 z pcf8583 w międzyczasie odczytuje temperaturę z ds18b20 no i .. właśnie jak uruchomiłem PWM zaczęły się problemy, układ czasami się resetuje lub zawiesza zacytuje fragmenty: dodam ze pdf czytałem wielokrotnie...
Zwracam się z prośbą o naprowadzenie co robię źle. Potrzebuje wygenerować przerwanie co czas zależny od danego parametru (tutaj BPM). ATmega1284P pracująca z zegarem 20MHz. Ustawiam BPM i wyliczam czas: [syntax=c]uint8_t bpm = 120; uint8_t step_time = 60000/(2*bpm); //czas trwania 8ki w ms uint8_t count = 0; //zmienna pomocnicza do zliczania przerwan[/syntax]...
Próbuje zrobić czujnik ruchu przy użyciu TSOP1736 i LD271. Atmega taktowana jest wewnętrznym oscylatorem 8MHz. Mam taki kod: [syntax=c] #define F_CPU 8000000L #include <avr/io.h> #include <util/delay.h> int main(void) { DDRD = (1<<PD5); OCR1A = 111; // wartość wpisana do OCR1A TCCR1A |= (1 << COM1A0); // przy zrównaniu przełacz...
Kod kolegi zumek działa bez zarzutu Zrobiłem jeszcze opcje włączanie i wyłączania na dwóch przyciskach. [syntax=basic4gl]Debounce Pind.0 , 0 , Neg_com1a0 , Sub Debounce Pind.1 , 0 , Poz_com1a0 , Sub Loop Neg_com1a0: Set Tccr1a.6 Return Poz_com1a0: Reset Tccr1a.6 Return[/syntax]
Witam, piszę sobie taki oto kod i spotykam dziwne zachowanie układu. W skrócie: Jest sobie kontrolny debug na terminal , a po nim jest wywołanie funkcji. W efekcie podejrzana funkcja sprawia że debug który w kodzie jest przed nią się nawet nie pojawia. Sęk w tym że w podejrzanej funkcji nawet gdy użyję debugu na samuśkim jej początku to i tak go nie...
Witam. Jak widać jest to mój pierwszy post na tym forum. Na wstępie chciałbym prosić o wyrozumiałość - jeżeli temat znalazł się w nieodpowiednim miejscu, popełniłem jakiś błąd w składni tytułu czy coś tego typy, prosiłbym moderatora o poprawkę i pouczenie jak w przyszłości uniknąć powielenia problemu. Jestem w trakcie pisania pracy inżynierskiej dotyczącej...
Witam! Piszę program, w którym uruchamiam TIMER1 w trybie 15, działa on jako PWM ze stałą częstotliwością i wypełnieniem. Inicjuje TIMER3 który działa też w trybie 15 ale wywołuje z niego dwa przerwania, od porównania z rejestrem OCR3A i OCR3B. W pierwszym przerwaniu zeruje bit COM1B1 czyli wyłączam sterowanie portem przez TIMER1. W drugim przerwaniu...
Witam. Napisałem programik na procesor z tytułu, który mierzy długości impulsów na pinie, i wysyła wynik pomiaru na UART. Postanowiłem wykorzystać to do przechwycenia sygnału z pilota do tunera TV SAT (TechniSat, bo taki miałem pod ręką :) ), taktowanie: kwarc 4MHz, odbiornik typu TSOP, sygnał zanegowany przez 74LS00 i dostarczony na PD6, schemat pominę,...
Witam, próbuje zrobić sterownik silnika BLDC z wykorzystaniem uC Atmega8. Schemat i program zaczerpnąłem ze strony mikrokontrolery.blogspot. Układ został złożony zgodnie ze schematem: Jedyną różnice stanowią dolne tranzystory, ja użyłem IRFZ44N oraz zamiast dławika 10uH użyłem rezystor 10ohm. Ponad to zmodyfikowałem trochę program wydłużając czas rozruchu...
Witam Mam problem dotyczący sterowania serwomechanizmami za pomocą PWM przez ATMega8. Pewnie wielu napisze "szukaj w google". No ok, poszukałem i udało mi się wysterować serwomechanizm [syntax=c]#define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> int main(void) { int i,x; DDRB = 0xff; //konfiguracja portow TCCR1A = (1<<COM1A1)|(1<<COM1B1)|(1&l...
Witam, może pewnie to dla wielu błachostka ale ja nie nie wiem kompletnie dlaczego niżej zamieszczony kawałek instrukcji nie chce działać, mianowicie mam 3 diody led podłączone do PE3 do PE5 w atmedze128A i chciałem je zapalić w trybie pwm ale z niewiadomych mi przyczyn kawałek kodu nie chce działać, diody się nie zapalają. Jeszcze niżej zamieszczam...
Witam, Czy nakierowałby mnie ktoś w jaki sposób wykorzystując PWM można zrealizować płynne sterowanie jasnością diody LED przy użyciu pilota nadającego w standardzie RC5? Do tej pory udało mi się zrealizować płynne sterowanie jasnością diody wykorzystując PWM i microswitche - oto kod: [syntax=c]#define F_CPU 8000000UL #include <avr/io.h> #include...
Witam. Mam następujący problem z SPI (i nie tylko) Najpierw opis układu: Atmega32A master SPI Atmega8 Slave. (przerwania) Wszystko taktowane wewnętrznie na 8MHz Do atmegi8 są przyłączone 4 wyświetlacze 12 diodowe WA przez tranzystory. Katody do portów (oczywiście z R) Wyświetlanie multipleksowane. Do tego 8 przycisków - jako, że brakło portów to "klawiatura"...
Witam! Stworzyłem kiedyś projekt na atmega32 w którym za pomocą dwóch timerów 8-bitowych regulowałem dwie częstotliwości wyjściowe ustawiając timery w tryb ctc Tccr2 = &B10011001 Ocr2 = Wartosc Tccr0 = &B10011001 Ocr0 = Wartosc1 wszystko idealnie działało jednak z czasem pojawiła się potrzeba aby regulować częstotliwość z większą dokładnością. Postanowiłem...
Witam ! Tworzę projekt stacji pogodowej za pomocą ATMEGI16 + LCD 2x16. Tworzę licznik impulsów który zliczałby mi czas pomiędzy zboczami impulsów (prędkość obrotowa wiatru) Znalazłem w sieci program który działa na Atmega8 + 16MHZ kwarc. [url=]Link Chciałbym go przerobić na Atmega16 na wewnętrznym zegarze plus hallotron. Czujnik halla podłączyłem pod...
Witam Mam problem z uruchomieniem watchdog'a w atmedze324. Procesor nie uruchamia resetu. Ten program powinien wypisywać cyfry przez około 2 sekundy potem powinien się zresetować. Proszę o pomoc. [syntax=jezyk_programowania] #include <mega324.h> #include <stdio.h> #include <delay.h> #include <stdlib.h> #include <string.h>...
Witam, Pewnie sprawa będzie dla was banalna ale ja się z nią zmagam już jakiś czas. Poniższy kod steruje 5 serwami: [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define KEY1 (1<<PA0) // definicja przycików #define KEY2 (1<<PA1) #define KEY3 (1<<PA3) #define KEY1_DOWN ( !(PINA &...
Witam. Chciałbym wykorzystać przerwania timera1 w Atmega32 do realizacji pojedynczego pomiaru wartości na ADC. Timer ustawiam w tryb "PWM with phase correct", a ADC na pojedynczy pomiar: [syntax=c] //ustawienia timer1 TCCR1A |= (1<<WGM10) | (1<<WGM11); TCCR1A |= (1<<COM1A1); TCCR1B |= (1<<CS11); //POZWOLENIA NA PRZERWANIE TIMSK...
Cześć Uczę sie obsługi PWM na mikrokontrolerze Atmega644pa, chcę w prosty sposób sterować obrotami silnika za pomocą PWM. Na początek próbuję sterować jasnością diody, co potem chcę analogicznie zaimplementować dla silnika aby uzyskać sterowanie obrotami. Napisałam poniższy program i modyfikowałam go przez dwa dni z zerowym sukcesem, bardzo proszę o...
Czesc, No niestety nie hula... probowałem tego. Myśle ze atmega jest zryta jakos... Mimo tego, ze mam obsługe przerwań i tak, wiem ze to musi działać bo skopiowałem to z mojego poprzedniego projektu, to mi się restartuje atmega. Zwrać na płytce nie ma. [syntax=c] #include <avr/io.h> // Załaduj bibliotekę input/output #include <avr/interrupt.h>...
Chciałem zrobić na ukałądzie NE555 jeden układ miał zwarcie na VCC i GND, a drugi urwany PIN VCC to próbowałem wykombinować na Arduino Micro Pro. Dalej możesz. Pod poniższym linkiem jest program wraz ze szczegółowym wyjaśnieniem, jak wygenerować 1 MHz (a nawet więcej) z użyciem ATMega32U4 (Micro Pro lub Leonardo): Alternatywny sposób na wygenerowanie...
Udało mi się! 'Przykład generowania fali prostokątnej niezależnie od CPU 'procesor AT Mega8 'zegar wewnętrzny 1 MHz 'piezo pomiędzy PB.1 a +5V 'UWAGA!!!, ATMEGA8 ma domyślnie załączonego Wachdoga!!!. Trzeba wyłączyć bezpiecznik!!! $regfile = "m8def.dat" $crystal = 1000000 Dim I As Byte Ddrb.1 = 1 'port b.1 wyjściowy '---------------------------------------...
Potrzebuje zbudować urządzenie które bedzie zliczało czas do momentu gdy mierzone napięcie przekroczy napięcie odniesienia. Więc skorzystałem z Timera1 i oczywiście z komparatora. Otóż mój problem polega na tym że komparator nie działa(chyba). Próbowałem zrobić to na 2 sposoby za pomocą kontroli stanu wyjścia komparatora(wyjście ustawione 1 jeżeli napięcie...
Witam Mam problem z zainicjowanieniem timera1 dla pocesora ATmega128 w tryb licznika. Chcialem to zrobic chyba za prosto czyli tak : outp(0x40, DDRD); outp(0x00, TCNT1L); outp(0x00, TCNT1H); outp(0, TCCR1A); outp(6, TCCR1B); Ale jakos program nie dziala. Trzeba cos ustawiac w innych rejestrach ??
Moim celem jest regulowanie prędkości obrotowej wiatraczków podłączonych do wyjść PB1 i PB2 za pomocą trybu PWM. Napisałem taki kod jednak coś nie gra. #include <avr\io.h> #include <avr\interrupt.h> #include <avr\signal.h> //ustawienie pinow na wyjscia wiatraczkow #define SET_FAN_OUTPUTDDRB|=(1<<PB1)|(1<... //wlaczenie...
Witam. Chcę za pomocą Timera1 odmierzyć czas w przybliżeniu 1 s (dokładność do 0,1 s). Wprowadzam następującą konfiguracje: ldi Temp, 0x29 ;załadowanie do r16 wartości ldi R20, 0x29 ;załadowanie do r17 wartości out TCNT1H, Temp ;wpisanie do rejestru TCNT1L wartości out TCNT1L, R20 ;wpisanie do rejestru TCNT1H wartości out TCCR1A,r29 ;wpisanie do rejestru...
W pierwszym zapisie: -wczytywany jest rejestr -zerowane są odpowiednie bity -zapisywany jest rejestr z powrotem Tylko, że Twój zapis jest NIEPRAWIDLOWY - chciałeś pewnie zapisać tak in R16,TCCR1A cbr R16,WGM11 cbr R16,WGM10 out TCCR1A,R16 Krócej mogloby to byc tak cbi TCCR1A,WGM11 cbi TCCR1A,WGM10 W drugim przypadku ladujesz do R16 wartosc=0 i zapisujesz...
Witam! Od kilki dni mecze sie z problemem napisania dzialajacego kodu dzieki,za ktorego pomoca bylbym w stanie sterowac serwomechanizmem. Przeszukalem juz chyba wszystkie mozliwe zroodl,a jednak tym razem googli prawdy mi nie powiedzialo :) bo wszystkie kody, ktore znajdowaly dawaly ten sam efekt. A mianowicie majac uP atmega128 - 16 Mhz zewnetrzny...
Czesc, Mam problem z wywołaniem przerwania od comparacji timera w ATmedze 168. Przerwanie jest zglaszane gdyz testuje flage w rejestrze TIFR1, jednak pomimo tego nie jest wykonywane. Ustawialem juz chyba wszystkie handlary ale nie ma efektu. Z gory dzieki za pomoc. Ponizej przedstawiam wazniejsze czesci programu. ISR(TIMER1_COMPA_vect) { TRIAK1_ON;...
Witam ! Chce poruszać serwami modelarskimi. Przeszukałem forum i znalazłem wiele postów na ten temat jednak dalej nie mogę tego uruchomić. Pisze w C w AVR Studio i WinAvr. Oto mój kod: #include <avr/io.h> #include <avr/interrupt.h> unsigned char i = 0; unsigned char j = 0; int main(void) //poczatek programu { DDRB = 0x00;//Port...