Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 23 gru 2025, o 20:30


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: wczoraj, o 11:56 
Offline
Nowy

Dołączył(a): 17 gru 2025
Posty: 7
Pomógł: 0

Napisałem krótki kod dla atmegi 8 zastosowałem jak mniemam wszystkie wskazówki z BB i kursu C i poniższy kod nie daje się nawet skompilować. gdzie tkwi błąd ???/*
* main.c
*
* Created on: 16 gru 2025
* Author: Roman B
*/

#include<avr/io.h> //plik nagłówkowy
#include<avr/interrupt.h> //plik przerwaań
#include<util/delay.h>

int main(void){

DDRC = 0b11111111;
PORTC = 0b11111110;

DDRD = 0b11111111;
PORTD = 0b00000000;
// ustawienie TIMER0

TCCR0 |= (1<<CS02)|(1<<CS00);
TCNT0 = 0;
TIMSK |= (1<<TOIE0);

volatile uint16_t a = 0;

sei ();
while(1)
{
PORTD = a;
}
}
ISR(TIMER0_OVF_vect);
{
a++;
}
Pozdrawiam :?:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: wczoraj, o 19:20 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 562
Pomógł: 28

Problemem jest zmienna a spróbuj tak :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: wczoraj, o 20:02 
Offline
Nowy

Dołączył(a): 17 gru 2025
Posty: 7
Pomógł: 0

Spróbowałem dalej nie daje się skompilować. w 33 linii zgłasza komunikat:
Multiple markers at this line
-Syntax error
-Unused declaration of function_vector_9

dziękuję za próbę pomocy i pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: wczoraj, o 21:39 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 562
Pomógł: 28

Mój kod na 100% się kompiluje bo to sprawdzałem w mkclipse, pobierz najnowszą wersję mkclipse (tylko po instaluj wszystko z tego mkclipsa) i skopiuj to co ja wkleiłem i musi się kompilować.
P.S gdzie ty u mnie widzisz 33 linie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: dzisiaj, o 08:34 
Offline
Nowy

Dołączył(a): 17 gru 2025
Posty: 7
Pomógł: 0

33 linia mojego kodu a dokładnie linia zaczynająca się od ISR itd.. spróbuję z Mkclipsem ale nie mam z nim żadnych doświadczeń. Jestem amatorem elektronikiem a pisanie programów traktuję jako uzupełnienie. Dziękuję i pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: dzisiaj, o 08:54 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 562
Pomógł: 28

Cytuj:
33 linia mojego kodu a dokładnie linia zaczynająca się od ISR itd..

Po to wkleiłem mój kod żebyś z niego z korzystał to eliminuje błędy np. literówki



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: dzisiaj, o 08:57 
Offline
Nowy

Dołączył(a): 17 gru 2025
Posty: 7
Pomógł: 0

Usunąłem jeden błąd ale eclips wyświetla mi następującego erora:../main.c:34:3: error: 'a' undeclared (first use in this function)
a++;

sory ale czasem czuję się jak dziecko we mgle. Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: dzisiaj, o 09:10 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 562
Pomógł: 28

Obejrzyj to https://www.youtube.com/watch?v=TSuzkUrgvcM

P.S widzę że dalej brniesz w zaparte
Cytuj:
Usunąłem jeden błąd ale eclips wyświetla mi następującego erora:../main.c:34:3: error: 'a' undeclared (first use in this function)
a++;
zrób jak pisałem bo będziesz z tym walczył do jutra.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: dzisiaj, o 11:59 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27446
Lokalizacja: Szczecin
Pomógł: 1045

Roman70PLUS napisał(a):
Usunąłem jeden błąd ale eclips wyświetla mi następującego erora:../main.c:34:3: error: 'a' undeclared (first use in this function)
a++;

sory ale czasem czuję się jak dziecko we mgle. Pozdrawiam.

Podejrzewam że nie zapisujesz pliku, i nie ustawiłeś sobie autosave - stąd ciągłe błędy

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: dzisiaj, o 14:11 
Offline
Nowy

Dołączył(a): 17 gru 2025
Posty: 7
Pomógł: 0

Dobrze ja mam spore braki w wiedzy, ale silną wolę by je uzupełnić. Wytłumaczcie mi dlaczego to przerwanie nie chce działać ze zmienną a działa w takiej formie:
*
* main.c
*
* Created on: 16 gru 2025
* Author: Roman B
*/

#include<avr/io.h> //plik nagłówkowy
#include<avr/interrupt.h> //plik przerwaań
#include<util/delay.h>

int main(void){

DDRC = 0b11111111;
PORTC = 0b11111110;

DDRD = 0b11111111;
PORTD = 0b00000000;
// ustawienie TIMER0

TCCR0 |= (1<<CS02)|(1<<CS00);
TCNT0 = 0;
TIMSK |= (1<<TOIE0);

volatile uint16_t a;

sei ();
while(1)
{
PORTD = a;
}
}
ISR( TIMER0_OVF_vect ){
PORTD = 0b00000001;
_delay_ms(500);
PORTD = 0b00000000;
_delay_ms(500);
}
Pozdrawiam i dziękuję za cierpliwość.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: dzisiaj, o 15:25 
Offline
Nowy

Dołączył(a): 17 gru 2025
Posty: 7
Pomógł: 0

W tej chwili kod ma taką w pełni satysfakcjonującą mnie formę działa aż miło.
/*
* main.c
*
* Created on: 16 gru 2025
* Author: Roman B
*/

#include<avr/io.h> //plik nagłówkowy
#include<avr/interrupt.h> //plik przerwaań
#include<util/delay.h>

int main(void){

DDRB = 0b11111111;
PORTB = 0b00000000;

DDRD = 0b11111111;
PORTD = 0b00000000;
// ustawienie TIMER0

TCCR0 |= (1<<CS02)|(1<<CS00);
TCNT0 = 0;
TIMSK |= (1<<TOIE0);

volatile uint16_t x, a;

sei ();
while(1)
{
if(bit_is_set(PINB,0))
x++;
if(x == 10000){
a++; x = 0;
PORTD = a;
}
}
}
ISR( TIMER0_OVF_vect ){
PORTB ^=(1<<PB0);

}

To jak mniemam kończy temat i moją pierwszą wizytę na forum. Dziękuję i pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: dzisiaj, o 18:59 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 562
Pomógł: 28

Cytuj:
Wytłumaczcie mi dlaczego to przerwanie nie chce działać ze zmienną a działa w takiej formie:

odpowiedz jest bardzo prosta tworząc zmienną w ten sposób
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

tworzysz ją w funkcji main i jej widoczność jest tylko w funkcji main
dla tego pisałem że problemem jest zmienna a jak utworzysz zmienną tak
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

to tworzysz ją w obszarze zmiennych globalnych i jej widoczność jest w obrębie całego pliki main.c



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: dzisiaj, o 19:18 
Offline
Nowy

Dołączył(a): 17 gru 2025
Posty: 7
Pomógł: 0

Jasne, poćwiczę a efektami się pochwalę. Jeszcze raz dziękuję i wesołych świąt.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO