collapse

* Posts Recentes

Circuito Microfone que funcione por almamater
[Ontem às 17:14]


Emulador NES em ESP32 por dropes
[22 de Abril de 2024, 14:14]


Arame de Estendal por almamater
[18 de Abril de 2024, 16:16]


O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]

Autor Tópico: Introdução ao avr-gcc usando o AvrStudio [Mais timers/mood light]  (Lida 116655 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline Pedrock

  • Mini Robot
  • *
  • Mensagens: 279
Re: Introdução ao avr-gcc usando o AvrStudio [Mais timers/mood light]
« Responder #150 em: 06 de Setembro de 2012, 23:05 »
e pensar que paguei mais de 20€ por 2 atmegas...
Foram caros...

Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: Introdução ao avr-gcc usando o AvrStudio [Mais timers/mood light]
« Responder #151 em: 07 de Setembro de 2012, 12:03 »
Já cá chegou o material  :D
20 atmegas328p e 10 atmegas1284p.
Se calhar exagerei um bocado nas quantidades, mas já não tenho mais necessidades durante muitoooo tempo xD

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: Introdução ao avr-gcc usando o AvrStudio [Mais timers/mood light]
« Responder #152 em: 07 de Setembro de 2012, 22:38 »
Tou com um pequeno problema.

Instalei winavr e depois avr studio 6.

Acontece que apaguei o arduino atmega328 com o tutorial BitBang Mode.
Até aqui tudo ok.

Depois no avrstudio criei uma External tools asiim:

comando: C:\WinAVR\bin\avrdude.exe
Agrumento avrdude -p m328p -c avrisp -P com11 -b 57600 -F -U flash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i

erro avrdude.exe: stk500_getsync(): not in sync: resp=0x00

avrdude.exe done.  Thank you.

Cliquei no reset no inicio a meio do upload e durante todo o upload e da o mesmo erro em todas as tentativas

Onde esta o problema


Offline Pedrock

  • Mini Robot
  • *
  • Mensagens: 279
Re: Introdução ao avr-gcc usando o AvrStudio [Mais timers/mood light]
« Responder #153 em: 07 de Setembro de 2012, 22:44 »
comando: C:\WinAVR\bin\avrdude.exe
Agrumento avrdude -p m328p -c avrisp -P com11 -b 57600 -F -U flash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i
Deverá ser algo como:
Comando: C:\WinAVR\bin\avrdude.exe
Argumento: -p atmega328p -c arduino -P COM11 -b 115200 -D -U flash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i

Se não der, vê este tutorial:

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Introdução ao avr-gcc usando o AvrStudio [Mais timers/mood light]
« Responder #154 em: 07 de Setembro de 2012, 23:03 »
O que é que apagaste efectivamente?
Se foi o bootloader, ele é preciso, e o AvrStudio6 já tem integrado o compilador não precisas de instalar o WinAvr.
Avr fanboy

Offline Pedrock

  • Mini Robot
  • *
  • Mensagens: 279
Re: Introdução ao avr-gcc usando o AvrStudio [Mais timers/mood light]
« Responder #155 em: 07 de Setembro de 2012, 23:34 »
O que é que apagaste efectivamente?
Se foi o bootloader, ele é preciso, e o AvrStudio6 já tem integrado o compilador não precisas de instalar o WinAvr.
Pelo que vi é preciso para fazer o upload, porque o AtmelStudio6 só é compatível com os programadores da Atmel.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Introdução ao avr-gcc usando o AvrStudio [Mais timers/mood light]
« Responder #156 em: 07 de Setembro de 2012, 23:36 »
Nada disso, o avrdude funciona á parte do Studio6, era só não mexeres no Arduino e usar o bootloader do mesmo, agora tens de o voltar a programar, porque o Arduino não tem programador nenhum.
Avr fanboy

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: Introdução ao avr-gcc usando o AvrStudio [Mais timers/mood light]
« Responder #157 em: 08 de Setembro de 2012, 14:19 »
Pedrock - A primeira vez foi assim que fiz, mas não usei as bibliotecas do arduino, segui o tutorial até a parte do upload arduino. Depois usei o codigo da pagina inicial.  e funcionou.

Senso - Ai está a minha duvida se é ou não necessário bootloader.

Fiz  a seguinte experiencia com o programa no tutorial BitBang Mode daqui do forum.

No Avr studio fiz o projecto o led pisca-pisca com o codigo da pagina inicial e compilei,

no avrdude-GUI , apaguei o chip - erase chip depois verifiquei se os fuses estavam iguais, sim estão.
Depois no flash em vez de por o bootloader, como é suposto, pus logo hex  do pisca pisca. O que está na pasta do projecto avr studio

Gravei e depois desliguei e liguei o cabo usb e o arduino fica com o led a piscar.

Agora estou na duvida.

Se faz bem ao atmega ou se  vou acabar por estragar o atmega.
Pois sem o bootloader poupa-se 5,40  KB de memoria.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Introdução ao avr-gcc usando o AvrStudio [Mais timers/mood light]
« Responder #158 em: 08 de Setembro de 2012, 14:52 »
O bootloader tem no máximo 2Kb, isto no atmega328p.
Não percebo é como é que estás a programar o atmega.
Avr fanboy

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: Introdução ao avr-gcc usando o AvrStudio [Mais timers/mood light]
« Responder #159 em: 08 de Setembro de 2012, 15:18 »
Estou a programar como o video Pedrock postou.

Só que exprimentei seguir este post: http://lusorobotica.com/index.php?topic=427.msg42035#msg42035, mas em vez de usar o bootloader usar logo o hex gerado pelo avr studio do programa led pisca pisca.

E quero saber se há problemas em usar este metodo pois não usei nenhum bootloader.

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: Introdução ao avr-gcc usando o AvrStudio [Mais timers/mood light]
« Responder #160 em: 08 de Setembro de 2012, 15:22 »
não há problema nenhum , o bootloader simplesmente permite que a mesma memória flash seja programada sem recurso a um programador, ter ou não ter apenas depende da aplicação, não afeta o funcionamento ou tempo de vida do microcontrolador

Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: Introdução ao avr-gcc usando o AvrStudio [Mais timers/mood light]
« Responder #161 em: 13 de Setembro de 2012, 22:07 »
Boas, se calhar a minha dúvida vai ser estúpida, mas está a fazer-me um bocado de confusão...

Estive a fazer uns testes com pwm com um led, mas quando supostamente está a 0% duty cycle o led acende, claro que com menos intensidade, mas acende. Não era suposto a tensão no pino ser 0?

Cumps


EDIT: Coloquei o bit COM0A0 a 1 para experimentar no modo inverso e ao escrever 255 no registo OCR0A de facto o led apaga-se completamente. Alguém sabe o porquê de não acontecer no modo normal?
« Última modificação: 13 de Setembro de 2012, 22:28 por rglove »

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: Introdução ao avr-gcc usando o AvrStudio [Mais timers/mood light]
« Responder #162 em: 18 de Setembro de 2012, 19:58 »
Estou com graves problemas.

Então fui http://www.jump.to/fleury baixei o LCD library for HD44870 based LCD's.
copiei o lcd.c lcd.h para a pasta do projecto
Depois abrir o atmel  studio 6 criei um projecto escolhi atmega328p.
No Solution Explorer adicionei os 2 ficheiros lcd.h lcd.c.

Coloco o codigo  e ao fazer debug dá-me 9 erros:
'PORTA' was not declared in this scope

Alguém sabe onde está o problema.
Testei vários codigos mas dá-me sempre o mesmo erro.
Citar
#define F_CPU 16000000

#include <avr/io.h>
#include <util/delay.h>
#include "lcd.h"

int main(void)
{
   lcd_init(LCD_DISP_ON);                /* initialize display, cursor off */
   while (1)                         /* loop forever */
   {
      lcd_clrscr();                      /* clear the screen*/
      lcd_puts("test program");             /* displays the string on lcd*/
      _delay_ms(50);
   }
}


Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Introdução ao avr-gcc usando o AvrStudio [Mais timers/mood light]
« Responder #163 em: 18 de Setembro de 2012, 20:23 »
Tens de editar o lcd.h para que tenha nas definições os pinos que estás a utilizar e é normal que dê esse erro, o atmega328p não tem nenhum PORTA.
Avr fanboy

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
Re: Introdução ao avr-gcc usando o AvrStudio [Mais timers/mood light]
« Responder #164 em: 19 de Setembro de 2012, 16:59 »
devia ser algum conflito com a biblioteca lcd, pois alterava e acusava PORTA há mesma.
Resolvido e o lcd já funciona.

Agora queria fazer reproduzir o exemplo do arduino liquid crystal - hello world e usei um codigo que apareceu aqui, mas nao está a funcionar. Ao fim de 2 segundos aparece 0.


Citar
#define F_CPU 16000000UL
   #include <avr/interrupt.h>
#include <avr/io.h>
#include <util/delay.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include "lcd.h"
#include "lcd.c"


void timer0_init(void);              //Function prototype

volatile unsigned long milis = 0;   //This is our shared volatile variable that will be used as the milis count
unsigned long now = 0;

//Global values
uint16_t adc_data;


//
// Main
//

int main(void)
{   
   int i;
   char buffer [33];
   timer0_init();
    lcd_init(LCD_DISP_ON);
   lcd_clrscr();
_delay_ms(2000);
   i == milis;
    itoa (i,buffer,10);
   lcd_puts(buffer);
}

   
   void timer0_init(void){

      TCCR0A = (1<<WGM01);             //Timer in CTC mode
      TCCR0B = ((1<<CS01)|(1<<CS00));    //1:64 prescaler
      OCR0A = 249;                     //Value to have an compare at every 1ms
      TIMSK0 = (1<<OCIE0A);             //Enable timer interrupts
      sei();                         //Enable global interrupts
   }

   ISR(TIMER0_COMPA_vect){

      milis++;    //Increase milis count by one millisecond
   }