Eu Tenho um Gravador que grava todos os modelos da familia AVR, na realidade é um kit didático que permite o desenvolvimento de muitos projetos
(comunicação serial: RS 232, RS 485, RS 422 e CAN via fibra óptica ou normal; comuincação USB, internete, RF com módolo hibrido; circuitos PWMs, controles de temperaturas. saídas e entradas digitais, saindas e entradas analógicas, teclados matriciais, LCDs, dispalays de sete segmentos, entradas para termopares, relógios digitais emuitos outros.)
Este kit foi desenvolvido por mim mesmo!
Respondendo a sua pergunta.
veja com é fácil:
1- Tipos de dados em linguagem C para WinAVR
Em C, como na maioria das linguagens, os dados são divididos tipos: inteiro, real, caracter, etc.
Esta divisão se deve basicamente ao número de bytes reservados para cada dado. Cada tipo de dado
possui um intervalo de valores permitidos.
1.1 Tipos básicos
Abaixo segue uma lista dos tipos básicos de dados permitidos em C. Os tipos char e int são
inteiros e os tipos float e double são de ponto flutuante.
Tipo Tamanho Intervalo Uso
char 1 byte -128 a 127 número muito pequeno e caracter ASCII
int 2 bytes -32768 a 32767 contador, controle de laço
float 4 bytes 3.4e-38 a 3.4e38 real (precisão de 7 dígitos)
double 8 bytes 1.7e-308 a 1.7e308 científico (precisão de 15 dígitos)
1.2 Declaração de variáveis
Para que se possa usar uma variável em um programa, é necessário fazer uma declaração de
variável antes. A declaração de variáveis simplesmente informa ao processador quais são os nomes
utilizados para armazenar dados variáveis e quais são os tipos usados. Deste modo o processador pode
alocar (reservar) o espaço necessário na memória para a manipulação destas variáveis. É possível
declarar mais de uma variável ao mesmo tempo, basta separá-las por vírgulas (,).
Sintaxe: A sintaxe para declaração de variáveis é a seguinte:
tipo variavel_1 [, variavel_2, ...] ;
Onde tipo é o tipo de dado e variavel_1 é o nome da variável a ser declarada. Se houver
mais de uma variável, seus nomes são separados por vírgulas.
Exemplo: Declaração das variáveis:
int i;
int x,y,z;
char letra;
float nota_1,nota_2,media;
double num;
No exemplo acima, i, x, y e z foram declaradas variáveis inteiras. Assim elas podem armazenar
valores inteiros de -32768 até 32767. Do mesmo modo letra foi declarada como variável caracter
podendo receber valores de -128 até 127 ou caracteres do conjunto padrão ASCII. As variáveis nota_1,
nota_2 e media foram declaradas como ponto flutuante tipo float e num como ponto flutuante tipo
double.
A declaração de variáveis é feita, em geral, dentro de uma rotina. Por exemplo, a rotina principal
main(). Deste modo se diz que está se fazendo uma declaração de variáveis locais. Variáveis locais
podem ser referenciadas apenas dentro da rotina dentro da qual foi declarada, neste caso a rotina
main().
Exemplo: Observe o uso da declaração de variáveis no trecho de programa abaixo:
void main(){
float raio, area; // declaracao de variaveis
raio = 2.5;
área = 3.14 * raio * raio;
}
Veja um exemplo prático!
#include <avr/io.h>
#include <avr/delay.h>
#define led1 (1 << 0)
#define led2 (1 << 7)
#define liga_led1() (PORTB |= led1)
#define liga_led2() (PORTB |= led2)
#define desliga_led1() (PORTB &= ~(led1))
#define desliga_led2() (PORTB &= ~(led2))
void main (void)
{
unsigned char counter;
//set PORTB for output
DDRB = 0xFF;
while (1)
{
//liga PB0
liga_led1();
//liga PB7
liga_led2();
//agurada tempo pequeno para simulação para implementação real
//otempo da função _delay_loop_2( ) deve ser aumentado
counter = 0;
while (counter != 5)
{
//wait (30000 x 4) cycles = wait 120000 cycles
_delay_loop_2(3);
counter++;
}
//desliga PB0
desliga_led1();
//desliga PB7
desliga_led2();
//wait (10 * 120000) cycles = wait 1200000 cycles
counter = 0;
while (counter != 5)
{
//wait (30000 x 4) cycles = wait 120000 cycles
_delay_loop_2(3);
7
counter++;
}
}
}
Observe os comandos em negrito, é através deles que os led’s são ligados e desligados pois isso foi
definido através dos defines.
Fui!!!