Poszukałem i znalazłem prosty programik w C dla AT90S8515 z kwarcem 8 MHz mrugający diodą LED. Dokonałem małej zmiany (częstotliwość kwarcu), kompilowałem go za pomocą avr-gcc pod linuksem, zaprogramowałem mikrokontroler ATmega8 za pomocą uisp i STK200 i... działa z wewnętrznym oscylatorem 1 MHz. Dioda LED jest przez rezystor podpięta anodą do +5V i...
Zmienne globalne i obsługa przerwania INT0: unsigned char n=0,numer=0,komenda=0,kod=0; bit zdalna_komenda; void IR_INT0 (void) interrupt 0 { if(n) { TL0=TH0=0; TR0=1; while (int0==0); TR0=0; if (TH0 > 5) { n=0; komenda=numer=kod=0; } else { if (TH0>2 || (TH0==2 && TL0 >...
Zmienna powinna być typu: volatile char Temp; wtedy będzie dostępna wszędzie.
Proponuję zmienną "znak" zadeklarować tak: volatile ..... znak;
Ja mam u siebie troche inaczej. Ale najlepiej skorzystać z datasheeta bezczelnie kopiując kod. Po co Ci to L po określeniu taktowania? Piszesz w WinAVR czy czymś innym? Init: #define FOSC 8000000// Clock Speed #define BAUD_GPS 9600 #define MYUBRR_GPS FOSC/16/BAUD_GPS-1 ////////////////////////////////////////... void USART_Init( unsigned...
Witam, W instrukcji jest opisany rejestr VGA_CONTROL który definiuje działanie karty. Np. jeżeli chcesz mieć włączone wyświetlanie czyli bit VEN=1, włączony kursor czyli bit CEN=1 oraz pracę z 4 generatorami czyli VM=1 (UWAGA w instrukcji jest błąd opisu dotyczący tego bitu) to musisz wykonać rozkaz: [syntax=c]VGA_Transmit (VGA_CONTROL, CTRL_VEN | CTRL_CEN...
Witam while (flag_ADCDONE_IS_RESET) flag_ADCDONE_RESET; Może brakuje średnika po while ?
Najpierw zainstalowałem WinAVR ale szybko go odinstalowałem. Teraz używam AVR Studio 5.1. Tego pierwszego zabezpieczenia nie zrobiłem bo w BASCOM brakło pamięci. To drugie jest, bo po wciśnięciu przycisku FURTKA sprawdzane jest czy brama jest zamknięta i czy nie jest w ruchu. Teraz wymordowałem program w C++ i on zajął trochę mniej miejsca ale szału...
Gdybyś dokładnie przytoczył komunikat AVRStudio , to było by łatwiej. Czy widzisz coś podobnego :?: "AVR Simulator Please wait while configuring simulator... AVR Simulator ATmega8 Configured OK Loaded objectfile: C:\WinAVR\Przyklady\Project.elf AVR Simulator JMP: Unsupported instruction on this device, use RJMP AVR Simulator JMP:...
Mam pytanie. Nie znam dokładnie winavr, ale umieszcza on łańcuch tekstowy w zmiennych typu data, zamiast w kodzie programu. Przykładowy program: #include <stdio.h> void main (void) { while (1) { printf("aaaaaaaaaaaa"); printf("bbbbbbbbbb"); printf("cccccccccccccc"); } } //------------ Size after: demo.elf : section size addr .text 2614 0 .data...
Niby prosty kod, zainicjowanie wyświetlacza, mazanie po nim i nic więcej. Wszystko działa lecz jeśli do projektu dodam linie #include <stdlib.h> to wszystko się wysypuje. AVRStudio się zawiesza podczas kompilowania. Gdzie jest błąd :?: Czy używanie bibliotek wymaga jakiegoś specjalnego ustawienia AVRStudio. #include <avr/io.h> #include "lcd.h"...
Witam. Mam na 100% blad obliczania czasu. Kozystam z jakiejs blednej funkcji ktora zaczyna dzalac poprawnie po przekroczeniu 40us :( Init dzala bo tam czasy sa wieksze niz 40!! ( ladna lipa ) Moze mi ktos napisac jakas prosta funkcje do precyzyjnego odmiezania 1 ( 5 ) us. ( kozystam z kwarcu 7372800Hz kolejne pytanie to ile cykli zegarowych zajmuje...
Witam. Zainstalowałem sobie pakiet WinAvr na laptopie z Windows 7 64bit. Posiadam układ Atmega8 i programator USBasp. Mam problem z kompilacją kodu do pliku .hex . Robię wszystko tak jak jest zapisane w #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> int main(void) { DDRB |= _BV(0)|_BV(1);...
Witam. Czytam ten kurs, co doradził p_zag i mam problem, ponieważ nie mogę skompilować programu, bo wyskakuje mi błąd: > "make.exe" all make.exe: *** No rule to make target `all'. Stop. > Process Exit Code: 2 > Time Taken: 00:01 Co mam zrobić, żeby mi zadziałało :?: Kod programu: /* "led.c" - programik do...
Witam; Korzystając ze strony http://radzio.dxp.pl/ napisałem (w WinAVR) procedurki obsługujące zapis i odczyt danych z zewnętrznej pamięci eeprom 24c32 po I2C. Problem w tym że nie działają.:( Tzn zlokalizowałem problem ale nie wiem jak się go pozbyć. Oto listing programu: twiread a mianowicie w miejscu: while (!(TWCR & (1<<TWINT))); program...
nie wiem czy static dziala dla zmiennych globalnych tak samo jak dla funkcji, ja to tam dalem bo myslalem, ze pomoze, bez tego tez nie dziala. Dodano po 9 dodanie volatile w main robi cos dziwnego: extern volatile TFrame Frame; void main (void) { (...) sei(); while (1) { if (Frame.state & READY)...
Nawet niekoniecznie początkujący. Ja się kiedyś nabrałem na coś mniej więcej takiego (przykład dotyczy innego problemu, ale pokazuje, jak w C trzeba uważać ;) ): [syntax=C] counter = 0; // komentarz while ( counter < MAX ); { // cośtam ... counter++; } [/syntax] Ja patrzyłem, kolega patrzył.. Dlaczego ta pętla wykonuje się tylko raz? Dopiero chyba...
To mój pierwszy kontakt z AVRami i od razu schody. Od kilku godzin próbuje uruchomić taki najprostszy programik wykorzystujący przerwanie od timera. Używam ATMega16 i kompilatora WinAVR (w różnych wersjach z tym samym skutkiem). Oto kod okrojony do minimum: #define __AVR_ATmega16__ #include <avr/io.h> #include <avr/signal.h> #include <avr/interrupt.h>...
dodałem static i nic nie pomaga a to kod programu: // ****************************************... // Project: // Author: // Module description: // ****************************************... #include <avr\io.h> // Most basic include files #include <avr\interrupt.h> // Add the necessary ones #include...
Witam! Mam pewien problem. Mianowicie, zadeklarowałem sobie strukturę w pamięci programu oraz zainicjowałem ją: typedef struct stringg { uint8_t screen_cnt; // ilość ekranów char napis[]; // tekst do wyświetlania }string_struct PROGMEM; string_struct strr = {1, "avc"}; oraz procedurę piszącą na moim wyświetlaczu:...
Witam! Próbuję pierwszy raz zaprogramować Atmegę8. Mkavrcalculator wykrywa Atmegę i rozpoznaje ją. Kiedy wybiorę wykonaj, chyba się programuje, ale układ wgl nie reaguje na to. Kiedy próbowałem wgrywać to przez WinAVR i Programmer notepad, wyrzucał komunikat "targed doesn't foud". Wgrywany program: [syntax=c]/* "led.c" - programik do testowania środowiska...
Witam, Próbuję się "przesiąść" z Bascoma na C dla AVR. W prostym programie próbuję odczytać stan wejść PA0, PA1. Przycisk zwiera do masy. Dlaczego w symulacji AVR Studio funkcja if od razu jest wykonywana?: if (!(PINA & 0x01)) Czy POTRA0, POTRA1, oraz PINA0, PINA1 nie powinny być ustawione po tych rozkazach? /*PA0, PA0, linie wejscia...
Dziękuję wszystkim! Posuwam się dalej. Namierzyłem na forum taki kod i sprawdziłem Działa. #include <stdint.h> #include <util/delay.h> #include <avr/io.h> void USART_Init() { /* Set baud rate */ UBRRH = 0x00; UBRRL = 51; //wyłączenie trybu podwójnej prędkości... UCSRA = (0<<U2X); /* Enable receiver and transmitter...
Piszę program w AVRStudio + WinAVR i mam problem. Kiedy deklarujemy funkcję i w jej argumentach wejściowych znajduje się wskaźnik np. do tabeli jest OK, ale jeżeli jest to wskaźnik do struktury kompilator wywala błędy. Przykład: #include <io.h> #include <iom32.h> struct bufor { unsigned char ramka[10]; unsigned short rozmiar;...
void uint_to_string(unsigned int liczba, unsigned int dzielnik, const unsigned int ulamek, char* string) // dzielnik i ułamek musi być potęgą liczby 10, dzielnik i liczba muszą spełniać nierówność: // liczba > dzielnik > liczba/10 { while ( dzielnik != 0 ) { if ( dzielnik == ulamek ) *string++ = '.'; *string++...
#include <avr/io.h> //#include <stdio.h> //#include <stdlib.h> #define F_CPU 8000000UL // 8 MHz #include <util/delay.h> int main (void) { DDRD = 0b11100000; // 1=Output, 0=Input PORTD = 0b11100100; //on while (1==1) { waitms(50); if (PORTD.2 == (0)) { PORTD.7 = (1);...
Witam. Problem jest następujący: Po podłączeniu programatora do płytki stykowej z układem (migające naprzemiennie dwie diody led, po naciśnięciu przycisku miganie przyspiesza) wrzuciłem na Atmege8 program, który umożliwia działanie właśnie tego układu: [syntax=c]/* "led.c" - programik do testowania środowiska WinAVR */ /* układ ATmega 1MHz */ /* PB0,PB1...
Witam; Jestem początkującym, wiec proszę o wyrozumiałość. Mam taki problem. Mianowicie mam płytkę AVR z procesorem atmega32. Kupiłem programator ISP(zgodny z STK 500v2), zainstalowałem sterowniki (w trybie dualAVR na COM4), następnie środowisko WINAVR. W winavr zrobiłem plik Makefale z ustawieniami: Makefile->MCU type->ATmega->atmega32; Makefile->Programmer->stk500v2;...
Witam, mam problem z przerwaniem modulu TWI w symulatorze AVR STUDIO. Program pisalem w C , obsluga przerwan globalna i TWIE ustawione.... Gdy ustawie recznie flage TWINT program nie przechodzi do wektora przerwania, tak jakby nic sie nie stalo. Nie wiem czemu tak sie dzieje, napisalem to samo w assemblerze i reczne ustawienie tej flagi wywoluje przejscie...
rozumiem faktycznie za mało danych, tak ma sterować ledami chcę sie tak nauczyć elektroniki. program wyglada nastepująco: [syntax=cpp]/* "led.c" - programik do testowania środowiska WinAVR */ /* układ ATmega 1MHz */ /* PB0,PB1 - diody LED; PD0 - przycisk */ #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> int main(void)...
Witam. Proszę o wytłumaczenie co oznaczaja dane polecenia - oznaczyłem te których nie rozumiem w komentarzu: [syntax=c]/* "domofon.c" - programik do auto-otwieracza do domofonu */ /* układ ATtiny 1MHz */ /* PB3 - Wyjście - BUZ11 - otwiera drzwi */ /* PB4 - Wejście - dzwonek (wywołanie) */ #define F_CPU 1000000 //#include <avr/eeprom.h> #include...
Witam, macie racje. Nie zadałem konkretnego pytania. Posiedziałem sobie jeszcze trche z tym wszystkim i znalazłem taki fragment programu: #define CPU_Hz 8000000 // częstotliwość zegara w Hz #define OSC 8 // częstotliwość zegara w MHz #define BAUD 9600 // prędkość transmisji po RS232 #define MYUBRR CPU_Hz/8/BAUD-1 // **** fukcje dla RS232 **** void UART_init(unsigned...
Witam, Podłączyłem diodę LED do ATmega8 i napisałem w C program do jej migania jednak nie działa. Próbowałem wszystkich dostępnych kodów w Internecie jednak efekt jest ten sam: dioda się pali non stop. Zauważyłem jedną dziwną rzecz: użycie _delay_ms(); jakby zatrzymywało działanie programu bo bez tej funkcji mogę bez problemu sterować pinem w stan niski...
nie mam już siły może ktos zerknąc???? Ten sam objaw nie ładuje nic do tablicy REC_MES #include <avr/io.h> #include <util/delay.h> #include <string.h> #include <stdlib.h> #include <stdio.h> #include <avr/pgmspace.h> static char sms[] = "0791"; static char smscd[] PROGMEM ="01000B91";...
Ja zaproponuję unię(nie Europejską) :D #include <avr/io.h> enum {ONE,TWO,THREE,FOUR}; typedef union { unsigned int _int; unsigned char _ibyte[2]; }SixTeen; typedef union { unsigned long _long; unsigned char _lbyte[4]; }ThirtyTwo; ThirtyTwo tt; SixTeen st[4]; void Transmit(int x) {...
Witam! Rozpoczynam właśnie naukę programowania mikrokontrolerów AVR. Pomaga mi /* "led.c" - programik do testowania środowiska WinAVR */ /* układ ATmega 1MHz */ /* PB0,PB1 - diody LED; PD0 - przycisk */ #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> int main(void) { DDRB |= _BV(0)|_BV(1);...
Witam. Na początku wypada wspomnieć że jestem początkującym elektronikiem. Problem wygląda następująco: podczas próby wysłania jakichkolwiek znaków do PC przy pomocy Atmegi 162 i nadajnika RS232 Maxima komputer nie odbiera żadnych znaków(tylko chaszcze, zera itp.) Zaznaczam że: 1) Prędkość transmisji zarówno w kodzie jak i programie do przechwytu na...
Do zrealizowania na zaliczenie kursu był program wykorzystujący timery i przerwania do pomiaru czasu. W skrócie wprowadzamy czas w void start(void)//rozpoczecie odliczania { sprintf(message,"Odliczanie "); message[15]=' '; LCD2x16_clear(); display(message, false); //konfiguracja timerow TCCR1B |=...
Jestem początkujący wiec proszę o pomoc a mianowicie : Jak przerobić ten program żeby 3 diody migały jedna po drugiej ? /* "led.c" - programik do testowania środowiska WinAVR */ /* układ ATmega 1MHz */ /* PB0,PB1 - diody LED; PD0 - przycisk */ #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> int main(void)...
Witam!! Byc moze to juz bylo poruszane ale jak do tej pory nie znalazlem odpowiedzi. W debugerze nie widze wartosci zmiennych i najprawdopodobniej one sie nie zmieniaja [color=green]#include <io.h> //+*************************************... tau0 6 volatile unsigned char mrugaj(volatile unsigned char czest);...
Witam, napisałem taki o to programik do uC atmega8: * kostka.c programik do losowania liczby (1;6) i wyświetlania na 7-segment.*/ /* układ ATmega 1MHz */ /* PB0,PB1 - diody LED; PD0 - przycisk */ #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> #include <time.h> #include <cstdlib> int main(void)...
Tak na prędce skleciłem układ i napisałem programik. http://obrazki.elektroda.net/15_12830994... Pętla while programu: while(1) { PORTD=0; delay_us(6); PORTD=2; delay_us(12); PORTD=1; delay_us(6); PORTD=2; delay_us(6); PORTD=0; delay_us(6); PORTD=1; delay_us(6); PORTD=2; delay_us(6);...
Witam, mam problem, a mianowicie zaczynam zabawę z mikroprocesorami i mam już zonka na samym początku? z programowaniem miałem kontakt pisząc w Delphi, ale nigdy z C. Czemu poniższy kod nie działa, a raczej nie utrzymuje wpisanego czasu, a zmiana "zapalanie się diody" następuje po około 5 sekundach. [syntax=c]/* "led.c" - programik do testowania środowiska...
Witam, Przepisuję właśnie swój projekt z Bascom'a na C, a właściwie jestem na etapie rozbudowywania programu i mam ostatnio problem ze skompilowaniem kodu. Cały układ to ATMega32 + ADC ADS1100 + LCD NOKIA3310 + MMC Card (na razie tyle ;-)). Jeszcze kilka dni temu program kompilował się prawidłowo (z kilkoma warnning'ami), więc postanowiłem wgrać hex'a...
To nie jest dyrastyczne działanie. Wiesz ile takich ostrzerzeń byś miał? Nie? Policz ile zmiennych masz w programie... Każda z nich może mieć i nie mieć sensu ale to jest C a nie pascal, żeby pisał wszystko. Wyobraź sobie 1000 linii kodu, gdzie specjalnie piszesz while(1) i co? dostajesz 800 warningów? A tak na poważnie ZbeeGin poczytaj o parametrach...
No ok będę stosował. Załóżmy, że jestem początkujący.. Co robię? Pisze w googlach kurs c avr Wchodzę na stornę, gdzie jest przykładowy kod do mrugania diodami: #define F_CPU 1000000L I setki osób próbuje ten kod. I co się okazuje? Kod działa, a brakło tam literki U Ja też zrobiłem sobie małą próbę: Mam kwarc zew. 11,0592 Napisałem kod:[syntax=c] #define...
Mam WinAvr i at90s2319, jeśli próbuje skompilować program to wyrzuca mi błędy. Dziwnym zjawiskiem jest to, że jak wybiorę ATMega to błędów nie ma. Błędy są też na Tiny. Posługuję się biblioteką Fleurego. /***************************************... * Title: I2C master library using hardware TWI interface * Author:...
Po bardzo długich bojach odkryłem przyczynę swoich bardzo dziwnych problemów z zmazywaniem pamięci w atmedze. Przedstawiam więc co ustaliłem. Uwaga - ważny jest plik zapychacz.h, który zawiera tablicę w PROGMEM i służy jedynie zajęciu flasha. Bez niego jednak błąd nie wystąpi. Należy użyć pliku załączonego do tego postu. Z niewiadomych przyczyn po dopisaniu...
Witam, po przesiadce z bascom do winavr piszę przykładowe programy w celu poznania C dla AVR, tym razem chciałbym wysyłać po rs232 odczyt z przetwornika analogowego. Używam a328p i po krótkim zapoznaniu się z dokumentacją układu ustawiłem transmisję i adc [syntax=c] #include <avr/io.h> #include <util/delay.h> int main( void ) { UCSR0B =...
Witam! Niedawno zacząłem eksperymentować z programowaniem mikrokontrolerów avr. Dotychczas programy kompilowałem w Bascomie, ale postanowiłem nauczyć się pisać w avr-c . Mój problem polega na tym, że gdy kompiluje prosty program (listing poniżej) avr-gcc tworzy plik *.hex o rozmiarze aż 9KB. Czy można jakoś to naprawić? Wszystko robiłem według /* "led.c"...
winavr petla while arduino while instrukcja while
atmega płytka stykowy atmega różnica atmega zewnętrzny kwarc
kalibracja hydrostatu tomek janiszewski
Króciec serwisowy lodówki: ssawny czy tłoczny? Nabijanie R600a, R134a, port Schradera Aktualizacja oprogramowania Pioneer VSX-934: instrukcje i wskazówki