Ir ao conteúdo
  • Cadastre-se

Tutorial de programação Basic para AVR's


Posts recomendados

shunt,

podes encontrar todas elas, inclusive as de PIC aqui:

http://forum.clubedohardware.com.br/microcontroladores-circuitos-linguagens/594329

Vai tudo pra la, todas as atualizações.

OFFTOPIC.: Mais um pro lado AVR da força rsrs.

Abs.

Grande Felipe. Agradeço a prontidão!

Quanto ao AVR, me fascinou o fato de ter mais ram, e poder usar IntToFloat :D

e outras mais da vida ^_^

Mas continuo em linguagem C mesmo. Só vou poder me dedicar mais no próximo ano, pois estou no fim da faculdade e lotado de coisas ("tcc").

Tenho intenção de pegar os exemplos em Basic e passar para C, (pic, avr) como mais uma opção. O que você e o mestre Paulo acham?

Abraço!

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...

Paulo, obrigado pelo tutorial, parei no primeiro exemplo por falta de componentes.

Teria como mudar o primeiro para que o led1 acendesse e o 2 apagasse com o pressionamento de uma chave táctil, mas não ocorresse nada na soltura da chave? E a cada acionamento da chave alternaria o led aceso e o apagado.

' Diretivas do Compilador (informam ao BASCOM sobre o nosso hardware)

$regfile = "m168def.dat" 'Modelo do microprocessador que

estamos usando

$crystal = 8000000 'Velocidade do clock

'

'------------------------------------------------------------------

' Setup do Hardware

' Configura a direção de todos os Ports do microprocessador

Config Portc = Output ' Saidas no portA

' Aliases do Hardware ( apelidos )

Led0 Alias Portc.0 ' LED ligado na saída portc.0

Led1 Alias Portc.1 ' LED ligado na saída portc.1

' Inicializa os ports assim o hardware começa corretamente

Portc = &B11111111 ' Desliga as saídas ( nível 1 nas saídas )

'

'------------------------------------------------------------------

' Declação das Variáveis

'

' Inicializa As Variáveis

'

' Declaração das Constantes

Const Tempo = 500 ' tempo de 500 Mseg aceso / apagado

'------------------------------------------------------------------

' Código principal do programa

Do

Led0 = 1 ' coloca a saída led0 ( Portc.0 ) em nivel 1 (

apaga o led )

Led1 = 0 ' coloca a saída led1 ( Portc.1 ) em nível 0 (

acende o led )

Waitms Tempo ' Espera 0,5 segundos

Led0 = 0 ' Apaga o led0

Led1 = 1 ' Acende o led1

Waitms Tempo ' Espera 0,5 segundos

Loop ' Volta ao início do programa

End ' Fim do programa

'------------------------------------------------------------------

Link para o comentário
Compartilhar em outros sites

Não sabia o que era debounce :lol:

-------------------------------------------------------------------------

Config Portc = Output ' Saidas no portC

' Aliases do Hardware ( apelidos )

Led0 Alias Portc.0 ' LED ligado na saída portc.0

Led1 Alias Portc.1 ' LED ligado na saída portc.1

Buton Alias Pinb.0

Config Portb.0 = Input

Portb.0 = 1 'pull-up

' Inicializa os ports assim o hardware começa corretamente

Portc = &B11111111 ' Desliga as saídas ( nível 1 nas saídas )

'

'------------------------------------------------------------------

' Declação das Variáveis

'

' Inicializa As Variáveis

'

'------------------------------------------------------------------

Dim State As Byte

State = 0

' Código principal do programa

Do

If Buton = 0 Then Waitms 50 'debounce

If Buton = 0 Then

If State = 0 Then

Led0 = 0

Led1 = 1

Bitwait Buton , Set 'espera o botão ser solto

End If

If State = 1 Then

Led0 = 1

Led1 = 0

Bitwait Buton , Set

End If

Incr State

If State > 1 Then State = 0

Waitms 300

End If

Loop ' Volta ao início do programa

End ' Fim do programa

'------------------------------------------------------------------

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...

Ola, paulo, obrigado por compartilhar com todos o otimo tutorial de avr,

quero montar o frequencimetro 50mhz, mas nao acho o cristal de 14.7456 aqui

na minha cidade, nem no mercado livre tem, o mais proximo e de 14.318, e

possivel substituir por outro, de frequencia mais fácil de achar.

ate mais.

mauro.

Link para o comentário
Compartilhar em outros sites

  • 10 meses depois...

Bom dia pessoal, estou voltando à atividade aqui no Fórum, e percebí que os links de downloads dos tutoriais não estão funcionando.

Vou atualizar os links, e depois postarei algumas novidades sobre o uso do BASCOM-AVR, que ajudam bastante a quem está começando.

E ao longo desse tempo que fiquei ausente, acabei usando bastante o Proteus, para simular o funcionamento dos programas sem ter de toda hora mexer no hardware físico.

Conseguí simular quase todos os projetos que realizei, claro que com algumas limitações, mas ganhei muito tempo fazendo essa simulação.

Com o osciloscópio virtual, o debug ficou muito, mas muito mais fácil.

Se houver interesse , posso fazer um pequeno tutorial sobre o processo e algumas dicas muito úteis, que permitirão a integração fácil entre o BASCOM-AVR e o PROTEUS.

E, aos amigos que sempre ajudaram a todos aqui no Fórum, meus agradecimentos pela cooperação !

Paulo

Link para o comentário
Compartilhar em outros sites

Pessoal,

Segue o link de um projeto muito legal, muito simples de montar, e que funciona muito bem. É um analisador de espectro de áudio, que pode utilizar vários tamanhos de displays LCD ou VFD. Tem ajuste de luminosidade via PWM, e ajuste de ganho de áudio, tudo por software.

http://diy.elektroda.eu/analizator-widma-akustycznego-v2/?lang=en

O site está em inglês, e ao final existem os links para se obter todos os arquivos do projeto. Mas todo o projeto original está em Polonês, e os comentários do programa também estão em Polonês, ou seja, não dá para entender o funcionamento do programa sem ficar traduzindo os comentários ....

O circuito usa um ATMEGA8, e o software é em Bascom-AVR com algumas operações em assembly para se ganhar velocidade.

Se alguém estiver interessado, eu reescreví o software para utilizar um ATMEGA88, o qual não apresenta nenhum possível problema com o ADC em 44 Khz.

Aliás, só para fazer um pequeno teste, eu troquei o cristal de 16 Mhz por um de 20 Mhz, e tirei as rotinas em assembler, utilizando exclusivamente o Bascom, e funcionou direitinho.

Embora a parte do software que realiza a DFT esteja bem confuso, o resto é bem simples, e ilustra muito bem o poder da linguagem Basic do BASCOM, aliado a um hardware muito simples.

Futuramente, estarei incluindo num novo tutorial esse exemplo, simulado pelo Proteus.

Paulo

Link para o comentário
Compartilhar em outros sites

Paulo,

Cade os sources?

Estou modelando a FFT no matlab e gostaria de comparar os códigos, quero ver que mais otimizações sairam dai.

A FFT é mais trabalhosa de entender do que de implementar, maaas logo logo solto a brincadeira aqui em C e vou dando o suporte pra gente migrar ela pro Basic.

Abs.

Link para o comentário
Compartilhar em outros sites

Felipe, no post anterior ao seu, eu passei o link do projeto completo ! :lol:

Eu tentei copiar o link apenas do arquivo para download, mas não funciona se voce não acessar a página diretamente !

Acesse a página, o link para download está imediatamente ao final da descrição do projeto, e ANTES dos trocentos posts de comentários !!!!

Esse arquivo contém tudo, desde o esquema, PCB's para diversos tipos de displays, fontes e arquivos .HEX prontos para gravar, ok ?

Dá uma olhada no source do cara ..... e depois se voce me ajudar a passar pro Basic, vai ficar uma beleza isso ! Valeu !!!!!!!

Boa pesquisa !

Paulo

Link para o comentário
Compartilhar em outros sites

Dá uma olhada no source do cara ..... e depois se voce me ajudar a passar pro Basic, vai ficar uma beleza isso ! Valeu !!!!!!!

É nisso que estou pensando, quero fazer primeiro em ANSI-C e depois ir ajudando o pessoal a portar para suas linguagens favoritas, no caso do Basic fariamos em conjunto, no caso do CCS que muita gente (ainda) usa poderia fazer com o colega Matheus_LPS, ja para ASM convocar os ilustres vtrx e Mulder_Fox, assim teriamos as FFT simples e em multiplataforma.

Vou continuar os estudos.

Abs.

Link para o comentário
Compartilhar em outros sites

Beleza , Felipe, se voce escrever em C , mas colocar a sintaxe normal, sem aquelas abreviações ( *&%$#@!(@!)!)@>>++<<< ..... ) , fica bem mais fácil para mim converter, e se tiver alguma dúvida voce me ajuda !!!!

Legal essa ideia de fazer multiplataforma, mas voce vai parametrizar para ela ser bem genérica, tipo poder definir quantas frequências , quantas amostras, quantos intervalos , etc ????

Se for usar aquele método Buterfly, vai dar trabalho pacas !!!!

Bom, manda bala e vê o que fica melhor para todos .

Valeu , Felipe !

Paulo

Link para o comentário
Compartilhar em outros sites

Beleza , Felipe, se voce escrever em C , mas colocar a sintaxe normal, sem aquelas abreviações ( *&%$#@!(@!)!)@>>++<<< ..... ) , fica bem mais fácil para mim converter, e se tiver alguma dúvida voce me ajuda !!!!

Com certeza!

Legal essa ideia de fazer multiplataforma, mas voce vai parametrizar para ela ser bem genérica, tipo poder definir quantas frequências , quantas amostras, quantos intervalos , etc ????

Vou tentar deixar o mais flexivel possível, porém como quero usar o metodo: "keep simple, stupid!" vou simplificar o máximo possóvel também, ja vou inclusive aproveitar asrotinas de atualização de buffer do algoritmo de averaging que esta no topico de DSP.

Se for usar aquele método Buterfly, vai dar trabalho pacas !!!!

A butterfly é o núcleo da FFT sem ela fica impossível fazer ela, ai teriamos que usar a DFT que vai limitar pra car****lho a banda do sinal, mas ela não é difícil de compreender, estou simplificando tudo que for possivel e contas mais complexas estou usando uma boa lookup para computar os twiddles.

Bom, manda bala e vê o que fica melhor para todos .

Vou começar a testar no fim da semana e ja posto por aqui os resultados.

Abs.

Link para o comentário
Compartilhar em outros sites

  • 4 anos depois...
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...