| ATNEL tech-forum https://forum.atnel.pl/ |
|
| Nie mogę wykonać ćw."Multipleksowanie LED-przerwania https://forum.atnel.pl/topic24828.html |
Strona 1 z 1 |
| Autor: | tadeuszgr1 [ 5 cze 2025, o 20:53 ] |
| Tytuł: | Nie mogę wykonać ćw."Multipleksowanie LED-przerwania |
Witam serdecznie Zakupiłem w firmie Atnel blubook, MKAVRCalculator i programator ATB-USBASP. Ja preferuję naukę poprzez ćwiczenia praktyczne. Mam zainstalowany wg poradnika Eclipse2022-12 Wykonałem podłączenia na płytce stykowej-Atmega32,wyświetlacze LED i programator wg not aplikacyjnych. Przepisałem ręcznie kod z blubook ale mam pełno krzaków.Nie mogę skompilować. Postanowiłem skorzystać do nauki z kodu Multi LED który otrzymałem do blubook. d_led_init(); // inicjalizacja wyświetlacza multipleksowanego // testowa inicjalizacja zmiennych oraz liczb mających się wyświetlać na wyrw. LED cy1=NIC; cy2=4; cy3=1; cy4=NIC; W blubook natomiast: d_led_init(); cy1=1; cy2=4; cy3=9; cy4=5; Nie rozumiem tego. Proszę o pomoc forum bo byłem"niepokorny" i pan Mirek odmówił mi dalszej pomocy. |
|
| Autor: | mirekk36 [ 6 cze 2025, o 06:59 ] |
| Tytuł: | Re: Nie mogę wykonać ćw."Multipleksowanie LED-przerwania |
tadeuszgr1 napisał(a): ale mam pełno krzaków.Nie mogę skompilować. Co to oznacza ? Mamy się domyślać ? Wróżyć ? Proszę PORZĄDNIE opisać problem! Pokazać błędy w konsoli, pokazać skrinszot żeby wyjaśnić na czym polega błąd kompilacji czy te "krzaki" ! A poza tym co to za wielka różnica pomiędzy tym: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. a tym: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. w pierwszym wypadku pierwszy i ostatni wyświetlacz nie wyświetlą - będą puste, a dwa środkowe wyświetlą jakieś cyfry. Drugi kod na każdym wyświetli jakieś cyfry - te konkretnie które przypisze się do zmiennych - co tu może być niezrozumiałego? |
|
| Autor: | Marhef [ 7 cze 2025, o 12:42 ] |
| Tytuł: | Re: Nie mogę wykonać ćw."Multipleksowanie LED-przerwania |
Problem jest z kompilacją w eclipse? Z wgraniem? Z wyświetlaniem na wyświetlaczach? Wstaw zdjęcie podłączeń. Stykówki potrafią być... problematyczne. Albo schemat podłączenia, jeśli taki masz. Jeśli problem jest z kompilowaniem, wstaw z konsoli błędy. Bez tego nie da się pomóc. |
|
| Autor: | tadeuszgr1 [ 16 cze 2025, o 12:42 ] |
| Tytuł: | Re: Nie mogę wykonać ćw."Multipleksowanie LED-przerwania |
Problem z kompilacją, do wgrania daleka droga. Próbuję napisać na podstawie "blubook" kod bo ten który otrzymałem drogą mailową do "blubook "Multi LED wg mnie różni się, nie rozumiem jego .Wg Pana Mirka tu cytat taki delikatny:"hahahaha wyjaśnij Pan ludziom w internecie którzy wychowali się na tej książce - że kody są nieodpowiednie ". Mój kod wygląda tak:*multipleksowanieLED * main.c * * Created on: 6 cze 2025 * Author: tadeu */ //****main.c***** #include <avr/io.h> #include <avr/interrupt.h> #include "d_led.h" //:::::::::::::::::::::::d_led.h::::::::::::::::::::::::::::::::: #ifndef _d_led.h #define _d_led.h #define LED_DATA PORTC #define LED_DATA_DIR DDRC #define ANODY_PORT PORTA #define ANODY_DIR DDRA #define CA1 (1<<PA0) #define CA2 (1<<PA1) #define CA3 (1<<PA2) #define CA4 (1<<PA3) extern volatile uint8_t cy1; extern volatile uint8_t cy2; extern volatile uint8_t cy3; extern volatile uint8_t cy4; void d_led_init(void); #endif int main(void) { //****inicjalizacja***** d_led_init();//inicjalizacja wysw multipleks cy1=1; cy2=4; cy3=9; cy4=5; sei(); } //::::::::::::::::::d_led c:::::::::::::::::::::::::::::::::::::: #include <avr/io.h> #include <avr/interrupt.h> #include "d_led.h" volatile uint8_t cy1; volatile uint8_t cy2; volatile uint8_t cy3; volatile uint8_t cy4; //******def funkcji inicj prace wysw ******** void d_led_init(void); { LED_DATA_DIR=0xFF; LED_DATA=0xFF; ANODY_DIR |=CA1|CA2|CA3|CA4;//4 piny portu A jako WYJSCIA(anody) ANODY_PORT|=CA1|CA2|CA3|CA4;//wygaszenie wszystkich wyswietlaczy(anody) //ust timer TCCR0 |=(1<<WGM01);//tryb CTC TCCR0 |=(1<<CS02)|(1<<CS00);//preskaler=1024 OCR0=38;//dodatkowy podzial przez 38(rej.przepelnienia TIMSK |=(1<<OCIE0);//zeawolenie na przerwanie COMPARE MATCH } //----------procedura obsługi przerw-CompareMatch------------- ISR(TIMER0_COMP_vect) { //zmienna do przelaczania kolejno anod wysw static uint8_t licznik=1; ANODY_PORT=~licznik; if (licznik==1) LED_DATA=cy1; else if (licznik==2 LED_DATA=cy2); else if (licznik==4 LED_DATA=cy3); else if (licznik==8 LED_DATA=cy4); licznik <<=1; if (licznik>8) licznik = 1; Po kompilacji pojawia się komunikat: 12:08:19 **** Build of configuration Release for project multipleksowanieLED **** make all 'Building file: ../main.c' 'Invoking: AVR Compiler' avr-gcc -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=1000000UL -MMD -MP -MF"main.d" -MT"main.o" -c -o "main.o" "../main.c" ../main.c:10:19: fatal error: d_led.h: No such file or directory compilation terminated. make: *** [main.o] Błąd 1 "make all" terminated with exit code 2. Build might be incomplete. 12:08:22 Build Failed. 1 errors, 0 warnings. (took 3s.414ms) |
|
| Autor: | xentis [ 16 cze 2025, o 13:43 ] |
| Tytuł: | Re: Nie mogę wykonać ćw."Multipleksowanie LED-przerwania |
Tu masz odpowiedź: tadeuszgr1 napisał(a): ../main.c:10:19: fatal error: d_led.h: No such file or directory Kompilator nie widzi pliku "d_led.h" I teraz pytanie czy ten plik masz w projekcie, czy jest w tym samym miejscu co main.c (bo jeśli masz to w osobnym katalogu to musi to zostać uwzględnione we wpisie #include, czy wszystkie pliki projektu mają zdjęty atrybut "tylko do odczytu"? Ewentualnie możesz mieć problem z antywirusem który blokuje dostęp do plików. |
|
| Autor: | RadekB86 [ 18 cze 2025, o 20:33 ] |
| Tytuł: | Re: Nie mogę wykonać ćw."Multipleksowanie LED-przerwania |
Proszę o wklejanie kodu w syntax C |
|
| Autor: | tadeuszgr1 [ 20 cze 2025, o 14:27 ] |
| Tytuł: | Re: Nie mogę wykonać ćw."Multipleksowanie LED-przerwania |
Nie potrafię wklejać kodu-nie działa mi. Na okładce "blubook" jest napisane,że kody do ćwiczeń otrzymam drogą mailową. Otrzymałem kod Multi LED-najbardziej wg mnie "pasujący "do tego ćwiczenia. Poniżej zamieszczam wycinek: język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Czy to jest kod odpowiedni do ćwiczenia Multipleksowanie LED- przerwania z "blubook"? Pytany dwukrotnie przeze mnie Pan Mirek K.twierdzi, że jest odpowiedni i kody do tego ćwiczenia nie zmieniły się . Proszę,żeby mi ktoś wytłumaczył o co tutaj chodzi. |
|
| Autor: | tadeuszgr1 [ 27 cze 2025, o 10:01 ] |
| Tytuł: | Re: Nie mogę wykonać ćw."Multipleksowanie LED-przerwania |
Przepraszam za "zamieszanie" .Wszystko działa . Nie działało mi dobrze z dwóch powodów: 1-niezbyt dobre połączenia na płytce stykowej- mikrokontroler dałem w podstawkę i polutowałem 2-pomyliłem porty Do "wszystkiego " trzeba mieć "chłodną głowę" |
|
| Strona 1 z 1 | Strefa czasowa: UTC + 1 |
| Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |
|