migrando pic para avr duvidas do mal funcionamento

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

migrando pic para avr duvidas do mal funcionamento

Mensagempor diogo_18sp » 14 Out 2013 23:36

Desde de já peço desculpas por postar este assunto do avr no topico do pic pois sempre programei pic mas fui obrigado a mudar para avr devido o qual a empresa que trabalho usa este microcontrolador mas estou quebrando a cabeça com um problema gostaria de sanar um possivel problema que está acontecendo com o atmega 32a, estou gravando um programa simples de pisca led para testar os pinos do microcontrolador mas esta acontecendo algo que estou ficando sem saida ja troquei um atmega eo seguinte problema persiste:primeiramente vou descrever os fuses que estou usando para gravar.
software Extreme Burner , com gravador USBASP
Fuses: E4 99
Calibrated internal RC Oscillator/
CKSEL0 =0
CKSEL1 =0
CKSEL2 =1
CKSEL3 =0

Mas o problema eo seguinte quando gravo o programa feito no codevision, vou testar o PC3,Pc4, Pc5 ,PC2 não assumem o valoresde saida ou seja um simples pisca led não funciona as saidas parecem que fica em alta impedancia pois o led fica aceso com um brilho fraco, olhando um site verifiquei que para ter o pleno funcionamento do portc devo desabilitar o JTAG http://www.engineersgarage.com/embedded/avr-microcontroller-projects/disable-jtag-port esta opção está correta em desabilitar o jtag para o portc funcionar corretamente, se desabilitar o jtag o avr não ira mais gravar ...por favor me ajudem vou postar o programa abaixo da ultima tentativa para fazer o portc funcionar.

Código: Selecionar todos
Project :
Version :
Date    : 14/10/2013
Author  : www.Eca.ir *** www.Webkade.ir
Company :
Comments:


Chip type               : ATmega32A
Program type            : Application
AVR Core Clock frequency: 8,000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 512
*****************************************************/

#include <mega32a.h>
#include <delay.h>
// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=0 State2=0 State1=T State0=T
PORTC=0x00;
DDRC=0xff;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// USART initialization
// USART disabled
UCSRB=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC disabled
ADCSRA=0x00;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

while (1)
      {
      // Place your code here
      PORTC.4 = 0;
      PORTC.2 = 0;
      delay_ms(1000);
      PORTC.4 = 1;
      PORTC.2 = 1;
       delay_ms(1000);
      }
}
diogo_18sp
Byte
 
Mensagens: 117
Registrado em: 14 Jan 2008 18:12
Localização: Amparo ,SP

Re: migrando pic para avr duvidas do mal funcionamento

Mensagempor ze2 » 15 Out 2013 08:01

seu mc pode estar em reset ou sem clock ou no modo debug e não release (este foi chute) ou não gravado corretamente (+1).
Se estiver danificado receba um cascudo virtual pois perdi meu tempo dando estes chutes
Tente a simulação no proteus
abç
ze2
Byte
 
Mensagens: 193
Registrado em: 09 Fev 2009 13:37

Re: migrando pic para avr duvidas do mal funcionamento

Mensagempor RobL » 15 Out 2013 08:53

Se o led acende fraco é possível que esteja com 50% ou menos de energia, em muito alta frequencia, com perda, salvo se você verificou com um scope e viu que não está saindo pulso na porta.

Vá no arquivo delay.h e veja que frequencia está lá, por exemplo : #define F_CPU 1000000UL // 1 MHz
//#define F_CPU 14.7456E6. Coloque ai a frequência de trabalho, penso que no seu caso seja 8MHz <=> 8000000UL.

Um outro teste. Sem alterar delay.h e usar a função delay.
Defina uma variável com 4 bytes e crie uma função para decontar até zero.
Código: Selecionar todos
void retardo(volatile uint32_t valor)
{
    while(valor)
       valor--;
}

Se não colocar o qualificador volatile o compilador vai jogar essa função no lixo.
Use valor=4 000 000 se seu clock for de 8MHz.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Re: migrando pic para avr duvidas do mal funcionamento

Mensagempor diogo_18sp » 15 Out 2013 12:16

ze escreveu:seu mc pode estar em reset ou sem clock ou no modo debug e não release (este foi chute) ou não gravado corretamente (+1).
Se estiver danificado receba um cascudo virtual pois perdi meu tempo dando estes chutes
Tente a simulação no proteus
abç



descobri oque acontece devo desativar TAG interface de ações PC2, PC3, PC4 e PC5 de ATmega16 . Para usar esses quatro pinos para operações gerais de I / O, JTAG deve ser desativado.
diogo_18sp
Byte
 
Mensagens: 117
Registrado em: 14 Jan 2008 18:12
Localização: Amparo ,SP


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x