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



Teraz jest 9 mar 2025, o 22:25


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
 Tytuł: ATMEGA128A
PostNapisane: 22 kwi 2017, o 15:01 
Offline
Nowy

Dołączył(a): 22 kwi 2017
Posty: 2
Pomógł: 0

Witam,
Posiadam ATMEGA128A z całą płytką stąd http://serwis.avt.pl/manuals/AVT1752.pdf z rezonatorem kwarcowym 16MHz i podłączam do tego kartę przekaźników (zaprojektowana samodzielnie). Napisałem do tej karty obsługę w AtmelStudio 7 (kod poniżej). Na symulatorze wszystko jest ok program śmiga bez zarzutu, wrzucam go po ISP do ATMEGI i po odpaleniu wykonuje się tak jakby tylko RC_Initalize(); i nic z pętli while, żaden z przekaźników się nie załącza (podłączając diody też żadna się nie świeci). Ten sam kod wrzuciłem na ATTINY2313 i na ATMEGA88 i wszystko działa bez zarzutu z tą kartą i z tymi avrami a na 128A już nie. W czym może być problem? Fusebity w ATMEGA128A zmieniłem tylko dla low na 0xFF żeby zewnętrzny kwarc 16MHz obsługiwał. Dla testów zmieniłem też linie RC_PORT = 0x00; na RC_PORT = 0xFF i po uruchomieniu układu załączają się przekaźniki ale ich stan się nie zmienia, więc stąd podejrzenie że ATMEGA128A nie wchodzi do pętli while lub nie wraca z voida RC_Initalize() tylko pytanie dlaczego tak się dzieje? Jeśli kod przerzucę kod z RelayCard.h i RelayCard.c do main.c to wszystko jest ok układ działa prawidłowo. Dodatkowo na ATMEGA128A nie działa mi tak naprawdę nic na zew. bibliotekach np LCD który działa bez problemu na ATMEGA88 na tym samym kodzie na 128A już nie działa, tak samo ENC28J60 który mi hula z ATMEGA88 na ATMEGA128A (po wydaje mi się właściwej konfiguracji) też nie działa. Ta 128A może być jakaś walnięta albo coś?

main.c
Kod:
//#define F_CPU 16000000UL to mam w ustawieniach projektu
#include <avr/io.h>
#include <util/delay.h>
#include "RelayCard.h"

int main(void)
{
   RC_Initalize();
   while(1)
   {
      RC_Enable_Port(OUT1);
      _delay_ms(1000);
      RC_Enable_Port(OUT2);
      _delay_ms(1000);
      RC_Enable_Port(OUT3);
      _delay_ms(1000);
      RC_Enable_Port(OUT4);
      _delay_ms(1000);
      RC_Disable_All_OUT();
      _delay_ms(1000);
   }
}

RelayCard.h
Kod:
#include <avr/io.h>

#define RC_DIR   DDRC
#define RC_PORT   PORTC
#define OUT1 PC0
#define OUT2 PC1
#define OUT3 PC2
#define OUT4 PC3

void RC_Initalize(void);
void RC_Enable_Port(uint8_t);
void RC_Disable_All_OUT(void);

oraz RelayCard.c
Kod:
#include <avr/io.h>
#include "RelayCard.h"

void RC_Initalize(void)
{
   RC_DIR = 0xFF;
   RC_PORT = 0x00;
}
void RC_Enable_Port(uint8_t p)
{
   RC_Disable_All_OUT();
   RC_PORT |= (1<<p);
}
void RC_Disable_All_OUT(void)
{
   RC_PORT &= ~(1<<OUT1);
   RC_PORT &= ~(1<<OUT2);
   RC_PORT &= ~(1<<OUT3);
   RC_PORT &= ~(1<<OUT4);
}



Ostatnio edytowano 22 kwi 2017, o 15:21 przez jagro89, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ATMEGA128A
PostNapisane: 22 kwi 2017, o 15:11 
Offline
Moderator
Avatar użytkownika

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

jak zwykle, ( a internet i fora najeżone są odpowiedziami na ten problem - tylko się szukać nie chce co? ... wręcz co drugi post w goglu znajdziesz z opisem tego problemu )

fusebit M103

ew

JTAGEN

_________________
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  
 Tytuł: Re: ATMEGA128A
PostNapisane: 22 kwi 2017, o 15:35 
Offline
Nowy

Dołączył(a): 22 kwi 2017
Posty: 2
Pomógł: 0

Działa, sorki faktycznie było na forum tylko nie zawsze udaje się łatwo wyszukać odpowiedzi na swoje pytanie jak do końca nie wie się jak je sformułować.



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: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO