Jump to content
ELFORUM - Forumul electronistilor

PORTA ATMEGA64 related


Guest -SQD-

Recommended Posts

Guest -SQD-

Bună, tuturoram incercat sa realizez un program de test - si anume sa "plimb" pe fiecare pin din PORTA (al microcontrollerului ATMEGA64) cate un LED si prezinta o comportare ciudata. Dupa ce m-am saturat de analizat codul am implementat acelasi cod pentru PORTC si a mers fara probleme. imi poate explica si mie ce am omis din datasheet ? si cum pot rezolva aceasta problema ... intrucat chiar am nevoie si de acest PORTA.multumesc anticipat,-SQD-

Link to comment
  • Replies 4
  • Created
  • Last Reply
Guest -SQD-

asta e codul:

 

/*** PB4 ---------*        |   -     *        1   2 *        -   | * PB3 --------*        |   - *        3   4 *        -   |* PB2 --------* LED1 - PA4 source, PA3 sink. restul pull-ups.* LED2 - PA3 source, PA4 sink. restul pull-ups.* LED3 - PA3 source, PA2 sink. restul pull-ups.* LED4 - PA2 source, PA3 sink. restul pull-ups.*/#include <avr/io.h>#include <util/delay.h> #ifndef F_CPU#define F_CPU 8000000UL#endif #define DELAY_TIME 1000#define N_LED 4 struct leds {	uint8_t mDDRA;	uint8_t mPORTA;} ledData[] = {	{ 0b00011000, 0b11110111 },	{ 0b00011000, 0b11101111 },	{ 0b00001100, 0b11111011 },	{ 0b00001100, 0b11110111 },}; int main(){uint8_t i;	for(;;)	{		for(i = 0; i < N_LED - 1; i++)		{			DDRA = ledData[i].mDDRA;			PORTA = ledData[i].mPORTA;			_delay_ms(DELAY_TIME);		}		for(i = N_LED - 1;i > 0; i--)		{			DDRA = ledData[i].mDDRA;			PORTA = ledData[i].mPORTA;			_delay_ms(DELAY_TIME);		}	}}

dupa cum spuneam pe PORTC merge bine se aprind: LED1-2-3-4-3-2-1-..., iar pe PORTA se comporta ciudat in sensul ca o data la 3 secunde se aprinde doar LED1.

 

vreo idee ?

 

-SQD-

Link to comment

Am verificat ochiometric codu pare ok. Singura varianta software care iti ramane sa nu mearga pe portul A, este sa fie activa XRAM. Altfel este ceva hardware, poate ai ars portul respectiv, vezi sa limitezi curentul prin leduri-le alea pentru ca pe portul A in special nu poti sa ai curenti mai mari de 100mA respectiv 40mA pe pin. in total pe toate iesirile (vezi ca scrie in subsol datasheet la electrical caracteristic).

Link to comment
  • 3 months later...

* LED1 - PA4 source, PA3 sink. restul pull-ups.* LED2 - PA3 source, PA4 sink. restul pull-ups.* LED3 - PA3 source, PA2 sink. restul pull-ups.* LED4 - PA2 source, PA3 sink. restul pull-ups.LED2 - PA3 source, PA4 sink. restul pull-ups.* LED3 - PA3 source, PA2 sink. restul pull-ups.ai pus de 2 ori pa3

Link to comment

Archived

This topic is now archived and is closed to further replies.




×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines