collapse

* Posts Recentes

LLM Crawlers por TigPT
[Hoje às 19:38]


Emulador NES em ESP32 por dropes
[30 de Abril de 2024, 15:09]


Circuito Microfone que funcione por almamater
[27 de Abril de 2024, 17: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]

Autor Tópico: atmega88 USART  (Lida 23113 vezes)

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

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: atmega88 USART
« Responder #45 em: 31 de Maio de 2011, 23:47 »
Penso que os A/PA já suportam 16Mhz, mas para isso só vendo na datasheet, mas se é um atmega88 sem mais nada no nome o máximo é 8Mhz.
Avr fanboy

Offline tiagosilva510

  • Mini Robot
  • *
  • Mensagens: 100
Re: atmega88 USART
« Responder #46 em: 31 de Maio de 2011, 23:48 »
atmega88-20pu

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: atmega88 USART
« Responder #47 em: 31 de Maio de 2011, 23:53 »
Esse mega88 corre até 20MHz, podes usar o cristal de 16MHz. Tá lá escarrapachado na 1ª página da datasheet :)
« Última modificação: 31 de Maio de 2011, 23:55 por Njay »

Offline tiagosilva510

  • Mini Robot
  • *
  • Mensagens: 100
Re: atmega88 USART
« Responder #48 em: 01 de Junho de 2011, 10:47 »
No SUT_CKSEL, carrega na seta e escolhe a opção mais parecida com isto:
Full swing crystal, startup time 65ms ou qualquer coisa assim do género.


Meto na mesma isto? com cristal de 16?

Offline tiagosilva510

  • Mini Robot
  • *
  • Mensagens: 100
Re: atmega88 USART
« Responder #49 em: 01 de Junho de 2011, 12:30 »
ja testei mas n da.. o que aparece na consola agora é

<0>€€€<0>€<0><0>€<0><0><0><0>€€<0>€€€€À€€<0><0><0>€€<0>€€€€À€€€€€<0><0><0>€€€<0><0><0><0>€€<0><0><0>€€<0><0><0>€<0>€

Offline xiserre

  • Mini Robot
  • *
  • Mensagens: 277
Re: atmega88 USART
« Responder #50 em: 01 de Junho de 2011, 13:12 »
o problema esta na divisao do clock. tira o visto do fuse ckdiv8..
O que acontece e que tens o cristal de 16mhz, mas a pll do micro divide o clock por 8, ficando a 2mhz.. retira esse fuse e tudo deve funcionar

Offline tiagosilva510

  • Mini Robot
  • *
  • Mensagens: 100
Re: atmega88 USART
« Responder #51 em: 01 de Junho de 2011, 13:50 »
ja fiz isso e testei, mas mais uma vez o que apareceu no terminal foi :

ÿüÿÿÿüÿüÿÿÿÿÿüüÿÿÿÿÿÿÿÿÿÿÿüÿÿþÿÿÿÿüüÿÿÿÿÿÿÿÿþüÿÿÿþÿÿÿþÿÿÿÿþÿÿÿÿüÿÿþÿÿÿûãÿÿÿÿüÿÿüüÿüÿüüÿüÿÿÿÿÿþüÿþüÿÿþÿüÿÿüÿÿÿÏðÿÿÿÿüÿÿÿÿþÿþüþÿþþüÿüÿüðÿÿÿÿÿÿÿÿüþÿþÿÿÿÿþüÿÿÿÿÿüüÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿüÿþÿÿÿþþüÿÿÿÿÿÿÿÿþðÿÿÿÿþÿÿþðÿÿÿÿüÿüÿÿÿÿÿüüÿÿÿÿÿÿðÿÿÿÿÿÿÿÿüþÿþÿ

Offline xiserre

  • Mini Robot
  • *
  • Mensagens: 277
Re: atmega88 USART
« Responder #52 em: 01 de Junho de 2011, 14:59 »
tou sem ideias. se tas a compilar o codigo original, nao tenho mais ideias

Offline tiagosilva510

  • Mini Robot
  • *
  • Mensagens: 100
Re: atmega88 USART
« Responder #53 em: 01 de Junho de 2011, 16:01 »
sim. tou a compilar o 1º código, e fiz td direito como disseram

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: atmega88 USART
« Responder #54 em: 01 de Junho de 2011, 16:33 »
Mostra os fuses que tens agora, só para o caso de estar ainda algo errado.

E estás a meter o terminal com 8 bits de dados, sem paridade e 1 stop bit?
Avr fanboy

Offline tiagosilva510

  • Mini Robot
  • *
  • Mensagens: 100
Re: atmega88 USART
« Responder #55 em: 01 de Junho de 2011, 17:15 »
fica aqui tudo direito o que estou a fazer, codigo, fuses e terminal:
Código: [Seleccione]
#define F_CPU 16000000
#include <stdio.h>
#include <avr/io.h>
#include <util/delay.h>
#define BAUDRATE 4800
#define BAUD_PRESCALLER (F_CPU/16/BAUDRATE - 1)

//declaração das funções
void USART_init(void);
unsigned char USART_receive(void);
void USART_send( unsigned char data);
void USART_putstring(char* StringPtr);

char String[]="OLA"; /*String[] que dizer que é um
array, mas ao colocar-mos o texto entre "" indicamos ao
compilador que é uma string e ele coloca automáticamente o
terminador null e temos assim uma string de texto usavel*/
int main(void){
            USART_init(); //Inicializar a usart
            while(1){ //Loop infinito
                  USART_putstring(String); //Passamos a nossa string á função que a escreve via serial
                  _delay_ms(50); //E a cada 5s re-enviamos o texto
                  }
            return 0;
            }

void USART_init(void){
                  UBRR0H = (uint8_t)(BAUD_PRESCALLER>>8);
                  UBRR0L = (uint8_t)(BAUD_PRESCALLER);
                  UCSR0B = (1<<RXEN0)|(1<<TXEN0);
                  UCSR0C = (3<<UCSZ00);
                }

unsigned char USART_receive(void){
                        while(!(UCSR0A & (1<<RXC0)));
                        return UDR0;
                         }

void USART_send( unsigned char data){
                           while(!(UCSR0A & (1<<UDRE0)));
                           UDR0 = data;
                           }

void USART_putstring(char* StringPtr){
                           while(*StringPtr != 0x00){
                                             USART_send(*StringPtr);
                                             StringPtr++;
                                               }
                             }







Offline xiserre

  • Mini Robot
  • *
  • Mensagens: 277
Re: atmega88 USART
« Responder #56 em: 01 de Junho de 2011, 17:24 »
baudrate????

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: atmega88 USART
« Responder #57 em: 01 de Junho de 2011, 17:25 »
Isso parece ser baud-rate errada, porque estás a receber, não está é a chegar em condições.
Avr fanboy

Offline tiagosilva510

  • Mini Robot
  • *
  • Mensagens: 100
Re: atmega88 USART
« Responder #58 em: 01 de Junho de 2011, 17:27 »
ha qqr coisa que nao me deixa receber a string, pois eu altero o delay e demoro a receber no terminal, n estou é mesmo a receber a string.

=/

Offline xiserre

  • Mini Robot
  • *
  • Mensagens: 277
Re: atmega88 USART
« Responder #59 em: 01 de Junho de 2011, 17:52 »
a baudrate ta mal.. tens a 4800..