Você está na página 1de 1

Voc no pode usar um pouco da porta usando um cdigo como PINA.0 ou PORTA.

2, isso s pode ser


feito em codevisionAVR porque o compilador feito para reconhecer isso, em AVRstudio ele no
compila.
Se voc quiser usar cdigo como este voc pode escrever [sintaxe = c] Estrutura / / para permitir
operaes de bit de campo, as converses de nome:
PORTA.0 -> PORT_A.b0 PORTB.7 -> PORT_B.b7 typedef struct {b0 uint8_t: 1; b1 uint8_t: 1; b2 uint8_t:
1; b3 uint8_t: 1; b4 uint8_t:; b5 uint8_t 1: 1; b6 uint8_t: 1; b7 uint8_t: 1;} bits; / /
define todas as portas do seu microcontrolador # definir PORT_A (* (bits volteis *) & PORTA) #
define PIN_A (* (bits volteis *) & PINA) # define DDR_A (* (bits volteis *) & DDRA) # define PORT_B
(* (bits volteis *) & PORTB) # define PIN_B (* (bits volteis *) & PINB) # define DDR_B (* (bits
volteis *) & DDRB) / / ento voc pode usar bits especficos como este para escrever ou ler bits
especficos PORT_A.b0 = 1; / / escreve valor a bit PORTA 0 PIN_B.b4 = 0; / / escreve valor a PINB bit 4
[sintaxe /] Uma maneira melhor e mais rpido usar isso [a sintaxe = c] / / adicionar este define #
define SETBIT (BIT, endereo) (ADDRESS | = (1)
Minha recomendao seria usar o SETBIT, etc CLEARBIT como se eu tivesse postado acima, eles so
muito fcil de usar. [Sintaxe = c] # define SETBIT (BIT, endereo) (ADDRESS | = (1
Voc tambm tem que permitir que o resistor pullup do pino de entrada (desde que voc no tem nenhuma
pullup externo) para que, quando os fundamentos boto de entrada pode ser detectado. [Sintaxe = c] DDRC =
0xFF; DDRD = 0x00; PORTD = 0x80; / / enable resistor pullup para a entrada de bit 7 do porto D (o pino do
boto) [sintaxe /] eo define no precisam estar dentro do principal , eles so geralmente colocados nas
primeiras linhas do cdigo, para que possam ser utilizados antes do principal tambm quando existe uma
funo Alex

Você também pode gostar