Ad 1. Trochę dziwne, bo na oko wydaje się wszystko ok. Najlepiej, jak uruchomisz pod debuggerem i prześledzisz linia po linii co się wykonuje i jakie przyjmuje wartości. Ad 2. A jaki jest błąd kompilacji?
Właśnie:] Nie zauważyłem ze wstawiając pętle do while nie wystawiłem zmiennych pozna nią. Wielkie Dzięki! Problem rozwiązany.
przed while, dokładnie jako druga linia w Twoim programie, zaraz po określeniu typu procka.
Masz 2 błędy: 1. Funkcja delay nie jest static. 2. Przekazujesz do _delay_ms wartość nie znaną na etapie kompilacji. [syntax=c]static inline void delay(uint16_t cnt) { #if !DEBUG while (cnt--) _delay_ms(1); #endif }[/syntax] BTW: Wklejając tutaj kod + komunikaty błędu kompilacji będziesz miał większe szanse na uzyskanie pomocy niż w przypadku screen...
Tak już poprawiłem błąd - wiesz wklejam kod który teoretycznie jest w 100% poprawny ... i przetestowany jak widać to nie prawda
dzieki :) zmieniłem przedostatnią linijke na while (!ADIF & (1<<ADSC)); i teraz pokazuje cały czas 0 Bo to jest bez sensu, poczytaj notę. Twoje wyrażenie po kompilacji wygląda tak: while (0); poza tym co to jest ADCW ?
Płytę tą można programować w kilku językach, m.in Python i C. Kompilacja przebiega do pliku img. W większości języków będzie to kod opierający się na pętli warunkowej if i pętli while.
Spróbuj tak #include <avr/io.h> int main(void){ while(1){ } }
To zrób np tak: [syntax=c] #include <avr/io.h> #include <util/delay.h> int main(void) { DDRB |= _BV(0)|_BV(1); PORTB |= _BV(0); PORTB &= ~_BV(1); DDRD &= ~_BV(0); PORTD |= _BV(0); while (1) { PORTB ^=_BV(0); PORTB ^=_BV(1); if(PIND & _BV(0)) _delay_ms(1000); else _delay_ms(200); } } [/syntax]
Trochę metodą prób i błędów ale błędów podczas kompilacji nie było żadnych. ... wstaw se na początku kodu while(1) { } i też błędów kompilacji nie będzie żadnych... :)
Switch to nie pętla, wykona się raz, zawsze na początku "licz" będzie równe 0 i utknie w nieskończonej pętli while. Zapewne przy kompilacji miałeś też wiele warningów na użycie delay, które zignorowałeś.
Kiedy mam problemy z programem dla AVR'a, napisanym w C, to zawsze podglądam co się urodziło po kompilacji. Czyli plik lst w asemblerze. Często okazuje się, że kompilator wstawia nie to co myślimy że powinno być. A dlaczego napisałeś tak: while(!(USISR & (1<<USIOIF))) //przerwie sie gdy SPSR ma 1 na SPIF miejscu Nie...
A co jeśli w obu bramkach startowych pojawi się zbocze w tym samym momencie i będą generowały interrupt? Napisz coś więcej o instrukcji While... wend
void send_RS(char* S) { while(*S!=0) { TXREG = *S; while(!TRMT); S++; } } send_RS("jakis tekst..."); Jeśli to soft Hi-tech to zrób tak: void send_RS( /* !!! */ const char * S ) { /* ... */ } Radzę przejrzeć manual do kompilatora bo takich krzaków jest masa... [/b]
A nie możesz spojrzeć do listingu (po kompilacji)? Pewnie optymalizacja w magiczny sposób wycięła cały "while" i nie ma oczekiwania.
...Czy może być coś skopsane w kompilacji komendy "while" w kompilatorze? Pozdr. Skopsany jest zapis instrukcji , a nie kompilator :) Ponieważ kompilator złożone instrukcje wykonuje w pewnej kolejności , to zapisu jakiego użyłeś , chyba nie potrafi zinterpretować. A ponieważ ta instrukcja jest poprawna składniowo , to nie ostrzega o błędzie , choć...
No dobra nawet jeśli nie ma default to Twoja funkcja sobie w while coś do temp przypisuje a tam przecież czasem funkcja Menu nic nie zwróci, bo jak wejdzie w case1 lub case2 to co wtedy? Żeby się upewnić, czy jest to ten błąd to weź wstaw do tych case jakieś returny czegokolwiek i wtedy zobaczysz.
do dziś pisząc w c++ mam w głowie słowa profesora - wykładowcy który odradzał stosowanie goto i jakoś zawsze tak jest ze spokojnie można napisać program posługując się flagami i funkcjami. Jeżeli nie chcesz duzo mieszac spróbuj przenieś fragment kodu wywołania przerwania na koniec tego co napisałeś a etykietkę H wynieś przed funkcję while (1)
nie jest to discovery tylko z propoxa mozna wyslac pojedyncze znaki tylko petla while nie dziala - zostaje ominieta podczas kompilacji przez kompilator (tak, widze to w assemblerze)
Warunek wykluczający foldery to [syntax=c]while ... { if (!(znalezione.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { } }[/syntax] W kodzie masz ukryty błąd, który wyjdzie podczas kompilacji w unicode - masz tam mieszane funkcje FindFirstFile oraz CreateDirectoryA. Zbędny przyrostek A w funkcji CreateDirectory sprawi błąd kompilacji. Problem tego programu...
Witam, Mam problem z kodem: [syntax=c] while ((c = *urlbuf)) [/syntax] Podczas kompilacji otrzymuje warninga: Warning: #1293-D: assignment in condition Co może być powodem? Pzdr, A.
Problem pojawia się, gdy funkcja toggle() jest wywoływana: No to sobie teraz zobacz DOKŁADNIE jak masz to Ka zdefiniowane i czy aby na pewno tak jak chciałeś. No i po co komu tam te "extern"? Nawet oryginalnie tak napisałem, ale z jakiegoś powodu wywaliłem te nawiasy... Nawiasy wciąż nie są rozwiązaniem wystarczającym. Jak sobie to wpiszesz wewnątrz...
Spróbuj zdefiniować main tak: int main(void) { sei(); while(1) { } }
[syntax=c] else { lcd.print("Sensor missing"); while (1) {} }[/syntax] Zapewne zatrzymuje się na tej pętli .
Jeśli dobrze rozumiem, to dopóki zewnętrzny przetwornik będzie na ten pin podawał logiczną jedynkę, pętla będzie się wykonywać. Kiedy poda 0 (koniec konwersji) pętla się skończy. Jeżeli by chodziło o wartość tego pinu to oczywiście tak. Ale chodzi o to że PIN1_bm to nie jest wartość pinu. Tylko definicja konkretnego pinu. Czyli ta pętla while w takiej...
1) kompilator wyrzuca jakieś błędy? aha, zdecyduj sie w jakiej notacji piszesz ;) nastaw sie na szesnastkowy Program po wykonaniu sie musi zwrócić wartość do systemu Wink (oczywiście tu go nie ma, ale to taki archaizm ze starych czasów Wink ) widać że programujesz w C, ale dla kompilatora AVR-GCC to return nie jest ważne, bo program nie powinien dojść...
Po zmianie fuse zamiast prostokątów pokazały się krzaczki i na końcu kursor. Jak wgrałem program od Pana m.bartczak niestety nie zadziałało przy żadnej konfiguracji fuse. A z tym spróbowałeś? while(1) { LCDclr(); LCDstring(name,5); LCDsendChar(space); _delay_ms(1000); LCDclr(); LCDstring(website,5);...
Witajcie. W C i C++ kolejność obliczania wyrażeń dla parametrów funkcji jest niezdefiniowana o czym informuje kompilator warning: operation on 'temp' may be undefined , więc lepiej nie robić takich niezrozumiałych konstrukcji tylko najprościej to zapisać tak: [syntax=c]uint16_t temp; uint8_t index,index2; while(*str) { temp = x + licznik *12; lcd_ustaw_obszar(temp,...
Odgrzeję kotleta: Microchip Studio v7.0.2542. Task "RunOutputFileVerifyTask" Program Memory Usage :2308 bytes 0,2 % Full Data Memory Usage :66672 bytes 24,7 % Full Warning: Memory Usage estimation may not be accurate if there are sections other than .text sections in ELF file Done executing task "RunOutputFileVerifyTask"....
Musisz tylko wyedytować ten plik (pętle "while") i ponownie skompilować cały projekt. Wszystko już zostało napisane wcześniej.
do pobierania parametru urzywa się getopt z unistd.h spróbuj tego parametry to -a i -b #include <stdio.h> #include <unistd.h> int main(int argc, char *argv[]) { int opcja; while((opcja = getopt(argc,argv,"ab")... != -1) { switch(opcja) { case 'a': printf("opcja...
No to zrób tak: [syntax=cpp] osoba * dane = pocz_listy; while( dane != 0 && dane->next != NULL )[/syntax]
Widzisz. Ja też napisałem by skorzystano z 90S2313 i takie paranoje się nie pojawiają. Zarówno z kompilacji z AVR Studio, jak i ręcznie przez makefile. Loaded plugin STK500 Loaded partfile: C:\Program Files\Atmel\AVR Tools\PartDescriptionFiles\AT90S2313.xml AVR Simulator: Please wait while configuring simulator... AVR Simulator: Device has no EEPROM...
a co jest nie tak z pętlą while(1) bo nie mogę się dopatrzeć To, że jest pusta. Stan zmiennej flaga sprawdzasz tylko raz na początku programu, po czym zapętlasz go w pustej pętli. Poza tym sprawdzanie if(flaga=1) jest błędem, zapewne miało być if(flaga==1) - przeczytaj ostrzeżenia kompilatora generowane w czasie kompilacji.
A jak muszą być funkcje, to przeanalizuj przykład: #include <cstdlib> #include <iostream> using namespace std; int czytaj(); int licz(int); void pisz(int); int main(int argc, char *argv[]) { int n; do { n=czytaj(); if (n>=0) {pisz(licz(n));... }...
Nie wspomnę już o tym , że po while(1) powinien być przecinek a u ciebie go nie ma na tym listingu - może tu coś się krzaczy ? teraz nie mam jak sprawdzić nawet. Przecinek po while(1) jest błędnym zapisem kodu źródłowego aplikacji (wyjątkiem będzie tutaj zapisanie sekwencji znaków: "while(1)" w komentarzu, ale i tak komentarze nie są brane pod uwagę...
Co to jest PIN(KLPORT) ? Wygląda na wywołanie funkcji. Jedyna możliwość, że całość jest pomijana to sytuacja w której na etapie kompilacji widać, że pewne warunki nigdy nie są spełnione i można całość zoptymalizować przez usunięcie.
najlepiej weź program który ma się powtarzać w pętle np: int x = 0; do { // tutaj kod programu ++x; } while(x == liczba); gdzie liczba to ilość "okrążeń" pętli, czyli ile razy program ma się wykonać.... jeśli ma się wykonywać cały czas to można np tak: while(1) { // tutaj kod programu }
Może utwórz nowy "workspace". Utwórz nowy projekt z while(1) i nic więcej, dla Xmegi i spróbuj skompilować.
F_CPU=100000UL jeśli oscylator masz ustawiony na 1MHz to brakuje jednego zera, powinno być F_CPU=1000000 Nie używam USBasp, więc nie będę się wypowiadał w kwestii używania tego programatora ale zerknij na program - masz dwie pętle nieskończone i nie inicjalizujesz portu poza pętlą. [syntax=c] #include <avr/io.h> #include <util/delay.h>...
Już tego próbowałem. W prostszej postaci - loop: note: void MD_Parola::displayText(char*, textPosition_t, uint16_t, uint16_t, textEffect_t, textEffect_t)
Mi takie coś się kompiluje bez problemów #include "LPC11xx.h" /* LPC11xx definitions */ #include "sysfun.h" #include "lcd.h" #include <cr_section_macros.h> #include <NXP/crp.h> // Variable to store CRP value in. Will be placed automatically // by the linker when "Enable Code Read Protect" selected....
Przy próbie kompilacji takiego prostego programu: stm32f10x.h(80): error: #35: #error directive: "Please select first the target STM32F10x device used in your application (in stm32f10x.h file)" Procesor pod który piszę to STM32F103VB. Kompilator KEIL wersja 4.22a
Tędy tędy, to że kompilator wypluł 90% zajętości wcale nie oznacza, że możesz sobie bezkarnie użyć resztę 10%. Zmienne automatyczne, wszelkie wywołania funkcji, przerwania - wszystko odkładane jest na stosie, a to już nie jest pokazywane po kompilacji. Załóżmy, że masz w uC 4bajty RAMu, załóżmy, że uC wykonuje tylko to, co jest napisane w kodzie i nic...
Witam. Mam zainstalowane winavr(WinAVR-20070525-install.exe) oraz avr studio 4.12 z SP. Program ma mw taka postac: #include <avr/io.h> #include <avr/interrupt.h> ISR (...) { } ISR (...) { } int main() { sei(); while(1) {} } i przy kompilacji otrzymuje błąd: ../mikro.c:62: error: redefinition of 'ISR' ../mikro.c:57: error: previous definition...
Pytanie dość proste, niestety nie znalazłem na nie odpowiedzi. Przykładowy kod: #include "stdafx.h" using namespace System; int main(void) { System:: while (1){ napis = Console::ReadLine(); } return 0; } Podczas kompilacji wyskakuje, że string jest jakimś nieznanym typem danych. Teoretycznie...
To rozumiem to tak że zmienna "i" jest już na stałe w pamięci i zadanie tej funkcji jest wykonywane najszybciej jak to możliwe Tak zmienna ma swoje stale miejsce w pamięci. Nie koniecznie wykonanie jest najszybsze bo najszybciej to działa jak zmienna jest w rejestrze procesora a globalną trzeba zapisać do pamięci przynajmniej przed wyjściem z funkcji...
koledzy potrzebuje pomocy bo dopiero wkraczam w świat programowania . Co realizują następujące funkcje: a. unsigned qq (unsigned x, int p, int n) { return (x >> (p + 1 – n)) & ~ (~ 0 << n); } b. x (a, b) { char *a, *b; while (*a++ = *b++); } b - spowoduje błąd kompilacji, poprawny zapis funkcji b według starej składni języka C:...
Witam Probuje skompilowac gotowy przyklad z ksiazki (dokladnie miganie diod), wszystkie pliki , headery itd sa wlaczone do projektu, lecz wyskakuje mi nastepujacy blad kompilacji target CPU does not support ARM mode zawartosc pliku util_delay.c: [syntax=c]#include <util_delay.h> void Delay(volatile unsigned count) { while(count--); } [/syntax]...
Pokaż komunikaty kompilacji. Takie zastosowanie delay jest problemogenne: [syntax=c]#define czekaj _delay_ms (czas) while(1){ uint8_t czas=20; ... czekaj; ... }[/syntax] Zrób funkcję z pętlą for zależną od parametru czas i wywołującą stałe opóźnienie np. _delay_ms(1).
Możesz to ująć tak: while((TIFR&0x02)!=0x02)... //czekaj na ustawienie flagi a potem ją skasować.
Witam kazdego z osobna! mam problem z kompilatorem Keil C oto program: #include<At892051.h> void main(void) { while (1) { P1=P3; } } kompilacja przebiega poprawnie generowany jest plik *.hex ale nie moge zaladowac go do 2051 bo sie nie miesci kompilator uzywa prawdopodobnie adresow kodu programu powyzej 800h bo do 4051 program sie poprawnie laduje...
1) spoko, szkoda że nie działa 2) no akurat to najważniejsza rzecz, gdy funkcja od metody różni się trochę. metoda jako pierwszy argument dostaje wskaźnik na obiekt this to niejawny argument, nie widać go. Nie da się stworzyć metody bez argumentów. Każda funkcja która jako pierwszy argument ma wskaźnik na obiekt może być nazywana metodą. dopisanie static...
Witam, piszę do was z prośbą o stworzenie prostego programu w CrossStudio 1.7 dla mikrokontrolera LPC2101. Chodzi o to ze chciałbym zapalic diodę na dowolnym porcie, tworze nowy projekt dla tego mikrokontrolera, w main.c na dobry początek wpisuje: #include <targets/lpc2101.h> int main(void) { while (1) { } }...
Zrobiłem mały tescik na PC: #include <stdlib.h> #include <stdio.h> #include <stdint.h> #define UIP_BIG_ENDIAN 0 #define UIP_LITTLE_ENDIAN 1 #define UIP_BYTE_ORDER UIP_LITTLE_ENDIAN #ifndef HTONS # if UIP_BYTE_ORDER == UIP_BIG_ENDIAN # define HTONS(n) (n) # else /* UIP_BYTE_ORDER == UIP_BIG_ENDIAN */ # define HTONS(n)...
A na przyszłość przecież możesz sobie komentować klamerki. Ja dla ułatwienia (mimo wcięć) ważniejsze klamerki oznaczam np. } //End while(1) , } //End If "zmienna użyta w warunku". To naprawdę pomaga.
odpowiedź dla Dondu nie rozumiem pytania o optymalizację? Czytaj tutaj: http://mikrokontrolery.blogspot.com/2011... Nie wiem co jest nie tak ale nie wiem jak ten kod wstawić do ciągłej pętli jak już wstawiam to wyświetlają mi się na wszystkich wierszach LCD zera.Prosze o pomoc co mama zostawić wprogramie głównym a co...
[syntax=c]int main(void) { USART_Init( unsigned int baud ); while(1) { send_USART(USART_Transmit( unsigned int baud)); } }[/syntax] Co to ma być? Przeczytaj podstawy języka C jak się przekazuje parametry do funkcji...
Tak, i po próbie kompilacji to samo, i pojawia się dźwięk Windows "Ding". kod taki tylko mam: [syntax=c] uint32_t zmienna1; int main(void) { while(1) { } } [/syntax]
itt wywaliłem, include poprawiłem teraz program wygląda tak: [syntax=cpp]#include <stdio.h> #include <iostream.h> #include <conio.h> using namespace std; int main() { int i=1000; int z_1,z_2,z_3,z_4; do { z_1=i/1000; z_2=i/100_((i/1000)*10); z_3=i/10_((i/100)*10); z_4=i/10_((i/10)*10); if (z_1!=z_2&z_1!=z_3&z_1!=z_4&...
hmm... w zasadzie jeśli funkcja delay_ms ma realizować to o czym myślę (opóźnienie w ms) to jej realizacja na 8-bitowym Timerze jest dziecinnie prosta i nie potrzeba się bawić w dołączanie bibliotek . No chyba że potrzebne są bardziej wyszukane funkcje. Poniżej delayms dla kwarcu 8Mhz (AT90S2313): void delayms(unsigned int ds) { unsigned int ii; TCCR0=0x03;...
Spróbuj tak:[syntax=c]void quicksort(list<int>* lista, list<int>::iterator lewy, list<int>::reverse_iterator prawy) { int quantity = lista->size(); quantity = quantity / 2; list<int>::iterator v = lewy; for (int i = 0; i < quantity; i++) { v++; } list<int>::iterator i; list<int>::reverse_iterator j; int x; i...
Tez dopiero zaczynam ale jak na moja głowe czy nie jest błędne postawienie warunku w petli while (znaczy jego brak), jestem prawie pewny ze jest tam błąd, powodzenia mialem rację powinno być np. while(ile!=0) czyli wykona warunek dopoki ile nie bedzie równe 0
Witam Ściągnąłem kod Chana do systemu FAT32. Kod do inicjalizacji karty pamięci też mam. Teraz chciałem utworzyć przykładowy katalog na karcie pamięci. W funkcji main.c mam taki kod: int main (void) { //char *ptr; char ptr[8]; SystemInit(); printf("\nFatFs module test monitor for LPC213x/214x"); printf("tworzono");...
Kurcze, rowniez o tym myslalem szczegolnie ze inaczej sie zachowuje gdy ustawiam zbocze np rosnace -reakcja po puszczeniu guzika. Probowalem dolozyc maly kondesator ale nic sie nie zmienilo w zasadzie, poza tym bardzo mi podpada to iz jesli wstawilem w f. obslugi przerwania taka mala 'pulapke' czyli while(1); lub for(;;); to program tez sie w tym miejscu...
albo optymalizacja na poziomie 2, albo na rozmiar (-Os) - nie można używać tych dwóch flag jednocześnie. Wrzuć tutaj wszystkie komunikaty z kompilacji. Spróbuj też skompilować super prosty program w ktorym nic nie będzie (while(1);). Tak BTW to od czasów gcc 4.1.1 minęło już dużo sekund [; Może warto zainstalować coś nowszego - np pakiecik G++ Lite...
Chce skompilowac programik WINAVR-em, a nie moge bo wyskakuje mi wdciąz błąd, tak jakby nie widział rozkazu sdi w bibliotece io.h o to ten program: #include <avr/io.h> int main(void) { sbi (PORTB,1); while(1) { } } A w wyniku kompilacji bład powstaje taki: > "make" avr-gcc -g -Wall -O2 -mmcu=atmega8 -c -o led.o led.c led.c: In function `main':...
Problem juz zniknoł ale pojawil sie kolejny ehh... Napisałem prosty programik zapalający led na porcie P0.0, plik Hex wyslalem do procka i nic sie nie zapala...zrobilem taki sam program w Bascomie i dziala :| co moze byc przyczyną ??? #include <AT89S8252.H> sbit W1 = 0x80; void main(void) { W1=0; while(1); }
A masz w katalogu projektu pliki stm32f4xx_rcc.h i stm32f4xx_gpio.h? Dodano po 4 Zrób nowy projekt, wybierając procesor stm32f407VG. Zostanie wygenerowny plik main.c. Wpisz tam przed while(1); - SystemInit(); i sprawdź czy się skompiluje.
'TOIE0' to niezdefiniowany symbol, dlatego muszę wpisać inaczej jeżeli nie ma to uzupełnij, najlepiej w pliku mega8.h ale mozesz i na początku swojego programu: #define TOIE0 2 ale kompilacja codevision również wyrzuca błędy przy sei() i cli() Nie ma w CV tych instrukcji - używasz je w postaci: #asm("sei"); Czy dobrze rozumiem, że...
Witam. Po każdej próbie kompilacji poniższego, testowego programu (w Eclipse, wersji Standard 4.3): make: *** [main.o] Error 1 C/C++ Problem Czym może być spowodowany?
Próbuję zrobić tak: void loop() { int status = WL_IDLE_STATUS; while (status != WL_CONNECTED) { Serial.print("Próba połączenia z SSID: "); Serial.println("Pixel"); status = WiFi.begin("Pixel", "pass"); } To działa, ale statycznie, jeśli użyję status = WiFi.begin(set->inner.sta_ssid, set->inner.sta_pass); podczas kompilacji kodu wyskakuje błąd. void...
tu masz cały kodzik: ////////////////////////////////////////... // WyswietlaczLCD.c // // Autor: Ravender Kompilator: WinAVR ////////////////////////////////////////... #include <avr/io.h> #include <inttypes.h> #include <util/delay.h> #include <hd44780.c> int main(void) { LCD_Initalize(); LCD_Clear();...
DObre Dobre, :) Szkoda, że nie działa;] A nie lepiej: #define F_CPU XXXXXXXX //w Hz #include <util/delay.h> i _wait_ms(x)? Do tego jeszcze -Os i jedziemy ;] PS.... While(1) w którym jest return=] I od kiedy return w nawiasach się pdoaje? (Si, można, ale może nie tak skomplikwaną rzecz jak 0:D) :)
Dzieki wielkie Panowie właśnie przed chwilą stworzyłem coś takiego: CLKSYS_Enable( OSC_RC32KEN_bm ); /* Enable 32 MHz Osc. */ do {} while ( CLKSYS_IsReady( OSC_RC32KRDY_bm ) == 0 ); /* Wait for 32 MHz Osc. to stabilize */ CCP |= 0xD8; CLK.CTRL = 0x01;
W programie na końcu mam pętle nieskończoną: while(1) { pressed[0] = 0; pressed[1] = 0; } Oczywiście wartość 1 wstawiam w przerwaniu. Niestety kompilator pzrerabia ten kawałek kodu na: RJMP PC-0x0000 próbowałem użyc for(;;) i do{} while(1) z tym samym skutkiem. Jak zmusić kompilator, żeby skompilował instrukcje zawarte...
Kod programu powinien działać gdyż skopiowany ze strony "Github". https://gist.github.com/eriksonjean/a85e... Z drugiej strony autor biblioteki pisze co innego: https://github.com/JChristensen/DS3232RT... Widocznie istnieją różne wersje tak jak w poniższym opisie. [syntax=text]The 2.0.0 version of the library has some significant...
Wyświetlam sobie wyniki pomiaru w terminalu przez usart i są one poprawne także nie wiem, wydaje mi się, że mi się nie wydaje. A reszta konfiguracji jest poprawna? Konstrukcja jakiej użyłeś w celu realizacji opóźnienia nie ma prawa działać przy zadnych sensownych opcjach kompilacji. Rzuć okiem na kod wynikowy - idę o zakład, że jeśli nie masz tam -O0,...
No dobra, zaraz sobie spr. ten programik. Ale czemu nie działa ten o który naprawde chodzi, fusy napewno dobrze ustawione bo analogiczny program w bascomie działa Wklejam kod jeszcze raz żeby nie było wątpliwości jak wygląda #define F_CPU 16000000 #include <avr/interrupt.h> #include <util/delay.h> #define tau0 250; unsigned char liczt0;...
Nie ma jakiegoś sposobu na sprawdzenie co go kieruje na default handler? Pewnie że jest i to nie jeden (; Dorzuć do swojego projektu gdzieś coś takiego: w okolicy miejsca które spowodowało problem. Patrzysz wtedy do pliku .lss i patrzysz co znajduje się w zakresie +/- 3 instrukcje od tego miejsca. 4\/3!!
... ja używam makr: Te makra, to są Ci potrzebne jak umarłemu kadzidło :D Zastanów się, pomyśl, poczytaj, co to jest makro, do czego służy , z czym to się je i co się z nim dzieje w trakcie kompilacji. A sprawa z przekazywaniem adresów portów do funkcji, jest śmiesznie prosta- mały - przykładzik: [syntax=c]void f1(volatile uint8_t *port,uint8_t pin)...
W kodzie mam kilka pozycji liczb do wyświetlenia (float) sprintf()wyświetla mi "____?___" Na próbę wpisałem kod: [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #include "config.h" #include "LCD.h" #include <util/delay.h> #include <stdio.h> #include <stdlib.h> ..... .... .... main() { #ifdef DEBUG float cyfra=34.34;...
Zmieniłem jeszcze 7 linię, bo błąd był przy kompilacji: [syntax=c] void REV_fb( void *fb, uint32_t size ) { uint32_t *_fb = (uint32_t*)((uint32_t)fb & 0x03); size >>= 2; while( size-- ) { *_fb = __REV16( (uint32_t)((uint32_t*)fb) ); _fb++; } } [/syntax] Teraz kompiluje się bez problemu, jednak nic się nie zmieniło, efekt dalej taki jakby bajty nie były...
No niestety, ale nie działa ... program wywala errory ... Chłopie , wróżki są na wakacjach :( Napisz/wklej np. że kompilator wyswietla ... 89S8252.C(9): error C141: syntax error near '=' , a nie każesz na zgadywać. To działa , jeśli właściwie "zbudowałeś" projekt. #include <at898252.h> sbit RS=P0^1; #define EN P0_0 void main() {...
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...
AVR GCC z pakietu WinAVR 20080610 jest bardzo agresywny i przy optymalizacji często nieskończona pętla while(1) zostaje przekształcona w RJMP +0 i... reszta programu jest pomijana! Doświadczyłem tego sam, jak i parę innych osób - nawet na tym fourm. Przykład skrócony (z forum): int main(void) { unsigned int sect; timer_init(); SPIinit();...
Witam. Właśnie zacząłem przygodę z STM, mam odpowiednią literaturę i pdf, jednakże od 2 dni nie mogę sobie poradzić z moim problemem. Zainstalowałem IAR wersję 6.70. Już od samego początku miałem problemy gdyż nie odczytywał bibliotek, przekopiowałem je do innego katalogu i dopiero wtedy zaczęło działać. Przygodę, z dla mnie nową rodziną uC, klasycznie...
Witam, Proponuję sprawdzić komunikację z wykorzystaniem tylko RS232 w ATmega32. W przypadku RS485 należy jeszcze zapewnić sterowanie odbiornikiem i nadajnikiem. Należy odpowiednio wpisać numeru pinu portu mikrokontrolera, który będzie to realizował poprzez RTS_ENABLE. Zmiany należy wprowadzić w pliku "port.h". Poniżej przedstawiam fragment pliku "port.h"....
Atmega88 nie ma takich w ogole rejestrow: TIMSK, TCCR0! Ten kod jest poprawny. #include <avr/io.h> #include <avr/interrupt.h> #define TIMER0_INIT 175 char i; // procedura obsługi przerwania od timera TC0 SIGNAL (SIG_OVERFLOW0) { TCNT0 = TIMER0_INIT; // załadowanie do licznika wartosci poczštkowej PORTB ^= (1<<PB1);...
Tak dodałem pliki nagłówkowe również do katalogu z projektem i nie pomogło ;/ o co chodzi z tym KODem ? z linkera #include "lcd.h" int main() { int i=0; lcd_init(); while(1) { i = (i+1)%10; lcd_home(); lcd_string2("Hello World!",i); for (int i=0;i<10;i++) _auxDelay(1000000);...
Od niedawna jestem posiadaczem płytki ewaluacyjnej Nucleo z STM32F303RE i próbuję ją uruchomić w Keilu. Niestety mam cały czas problem z kompilacją gotowych przykładowych projektów. Mam też inne płytki ewaluacyjne np; z Stelarisem i to działa pod Keilem. Wgrałem też STM32CubeMX ale bład jest cały czas podobny. Zmieniałem już chyba wszytkie ustawienia...
Zad13: Zad13.c libmoja.so gcc -L. -lmoja Zad13.c -o Zad13 libmoja.so: Zad13.o gcc -shared Zad13.o -o libmoja.so Dostaję taki komunikat: login(at)ubuntu:~/Lab2/Zad13/best$ make gcc -L. -lmoja Zad13.c -o Zad13 login(at)ubuntu:~/Lab2/Zad13/best$ ./Zad13 ./Zad13: error while loading shared libraries: libmoja.so: cannot open shared object...
void LCD_WriteText(char * text) { while(*text) LCD_WriteData(*text++); } Funkcja ta wysyła znak po znaku na wyświetlacz do czasu aż znak ten jest różny od zera "while(*text)". Wpisanie zera na końcu tablicy załatwia sprawę do czasu aż chcielibyśmy wyświetlić np. " 10 Volt ", albo "105". Zapewne zobaczylibyśmy tylko...
Witam, przykład blinking led jest znany. Występuje tam błąd przy określaniu częstotliwości taktowania main. Musisz zmienić plik system.c. Jego treść powinna wyglądac tak: #include "system.h" #include "AT91SAM7S64.h" AT91PS_PMC pPMC = AT91C_BASE_PMC; void Delay_s (unsigned long a) { while (--a!=0); } //MAIN POINTER AT91PS_PIO p_pPio = AT91C_BASE_PIOA;...
Witam. Mam trochę niestandardowy problem (w sumie to nie wiem na dobrą sprawę czy dobry dział) Podczas pisania programu a właściwie podczas używania takich symboli jak DDRA, DDRB,...., PA1..... itd wypisuje mi: "Symbol 'XXXX' could not be resolved" Podczas budowania wyskakują mi dokładnie takie same błędy. Jednak pomimo tych błędów program się kompiluje....
Witam. Przy próbie RUN jakiegokolwiek programu we wszystkich językach w VisualStudio'05 wyskakuje okno błędu: Error while trying to run project: Unable to start debugging. Dojście powiązania jest nieprawidłowe OK Czemu to tak może być?? kompilacja działa i generuje wynik normalnie. Będę wdzięczny za podpowiedzi. Pozdrawiam!
[syntax=arduino] void setup() { } // the loop function runs over and over again forever void loop() { delay(1000); // wait for a second } [/syntax] Traceback (most recent call last): File "C:\hostedtoolcache\windows\Python\3.8.1... line 12, in <module> File "PyInstaller\loader\pyimod03_importers.p...
Witam. Używam LPCXpresso do pisania programu. Problem w tym, że jakiś czas temu kompilowałem przykład uruchamiający UART0 i działało. Teraz przy nowy projekcie mimo, że kompilacja przebiega bez błędów, wygenerowany .hex ma ok 1KB i program się nie wykonuje. Wszystkie potrzebne pliki nagłówkowe lub źródłowe są w katalogu projektu i są zadeklarowane do...
[syntax=c]/* 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); PORTB |= _BV(0); PORTB &= ~_BV(1); DDRD &= ~_BV(0); PORTD |= _BV(0); while (1) { PORTB ^=_BV(0); PORTB ^=_BV(1); if(PIND & _BV(0)) _delay_ms(1000); else _delay_ms(200);...
witam, Jestem początkującym programistą. Niedawno zainstalowałem sobie Visual'a C++ 6.0. Mam niestety problem z kompilacją. Otóż, po stworzeniu workspace'a i dodaniu pliku, po napisaniu prostego kodu, np. # include <iostream> using namespace std; void main (void) { cout << "czesc" << endl; } i naciśnieciu Compile program tak jakby...
arduino while instrukcja while pętel while
schemat bezpieczników sterownika katalog transformator indel zamek kabina
hewalex sterownik hewalex sterownik
Polsat Box Go – limit urządzeń przekroczony, jak usunąć zbędne sprzęty i odzyskać dostęp Migająca biała dioda na pilocie Cyfrowego Polsatu - przyczyny i rozwiązania