Professional Documents
Culture Documents
*/
/********************************************
****************MODULO I********************
********************************************/
Ex: o tipo unsigned short long de 24bits passa a ser chamado de uint24_t
u - unsigned
int - inteiro
24 - tamanho em bits
Constate um valor que no seu programa que voc define e que no podera ser
alterado,
recomendado que variveis e constantes sejam declaradas no inicio de cada
programa.
const int16_t=100;
#define PI 3.1415
Sua sintaxe :
<tipo> <nome[tamnho]>
indice 0, 1, 2, 3, 4
Ex: int24_t valores[5]= {23,24,25,67,11};
> maior
< menor
>= maior ou igual
<= menor ou igual
== igual
!= diferente
&& - AND
! - NOT (Ex: Ligar e desligar uma bomba de agua, se o sensor estiver em 1 ele
desliga a bomb, se estiver em 0 liga a bomba)
|| - OR
Adio(+)
Subtrao(-)
Multiplicao(*)
Diviso(/)
Resto de diviso(%)
++; incrementa 1
--; decrementa 1
Estruturas:
Uma estrutura agrupa vrias vriveis em uma s. uma ficha que contem por exemplo o
nome, telefone e endereo.
A linguagem C/C++ permite definir tipos de dados novos utilizando tipos de dados j
existentes.
Isto possvel atravs da palavra chave typedef.
Colocando esta palavra antes de uma declarao, fazemos com que seja criado um novo
tipo e no uma varivel.
Ex:
struct
{
tipo variavel1;
tipo variavel2;
tipo variavel3;
}variavel;
Para acessar:
variavel.variavel1=<VALOR>;
Enumeraes:
Quando se cria um tipo enumerado,uma varivel deste tipo pode ter seus valores
manipulados vontade
e pode ser comparada com as constantes enumeradas.
Ex:
enum mes
{
janeiro=1,
fevereiro,
marco,
abril,
maio,
junho,
julho,
agosto,
setembro,
outubro,
novembro,
dezembro,
};
enum mes mes_vigente;
Unies:
Ex:
union angulo
{
float graus;
float radianos;
};
Neste exemplo temos dois membros (graus e radianos), ocupando o mesmo endereo de
memria.
Neste caso s gasto o espao equivalente a um nico float,
assim no possvel armazenar valor para as duas variveis ao mesmo tempo.
Podemos declarar variveis de diferentes tipos em uma unio.
Neste caso, a memria alocada corresponde ao tamanho do maior membro declarado na
unio.
Funes:
Diretivas:
Macros:
/********************************************
****************MODULO II********************
********************************************/
Variveis:
Para a declarao de variveis locais, tanto as variveis declaradas no corpo de
uma funo
quanto os parmetros de uma funo, adotaremos a primeira letra como minscula.
J para as variveis globais adotaremos a letra g seguida pelo nome da varivel
com a primeira letra maiscula
como a varivel "gResultado".
#include <stdint.h>
uint24_t gResultado;
uint24_t calculo(uint24_t base, uint24_t expoente)
valor= base;
return(valor);
ou
#define PI 3.1415
Indentao:
Chaves:
Espaos:
interessante adicionar espaos antes e depois de cada operador como por exemplo:
Diagrama de Estado:
Iremos colocar tambm uma margem de erro, ento quando a temperatura atual atingir
o valor de setpoint,
sera somado uma margem de erro para depois desligar a resistncia.E a resistncia
s deve ser ligada se a
chave de nivel estiver ativa.
Para a lgica sequencial as sadas no dependem mais apenas dos valores atuais de
entrada, mas tambm de valores passados.
Este tipo de lgica capaz de armazenar e relembrar informaes.
estadoBomba:
estadoResistencia:
Eventos: a condiao que faz a maquina mudar de um estado para outro. (entradas)
Em nosso exemplo a transio entre estados pode ser ocasionada pelos seguintes
eventos:
NivelOk: (sensorNivel == 1)
NivelNaoOk: (sensorNivel == 0)
LigaBomba
DesligaBomba
LigaResistencia
DesligaResistencia
LigaTemporizador
/***********************************************MICROCONTROLADOR
PIC18F4520*********************************************/
Para o dimensionamento de um microcontrolador os aspectos levado em considerao
so:
Recursos de energia:
Estrutura de oscilador:
Recursos de perifricos:
Descreve cada um dos tipos de recursos de perifricos que podem ser utilizados em
conjunto com o microcontrolador
(PWM, I2C, USART, DAC e etc).
Recursos especiais:
XT (cristal/ressonador)
Quando o circuito estiver operando com tenso abaixo de 3V ser necessrio usar o
modo HS
ou utilizar um cristal oscilador ao invs de um cermico;
Interrupes e perifricos
RCON
INTCON
INTCON2
INTCON3
PIR1, PIR2
PIE1, PIE2
IPR1, IPR2
No geral as fontes de interrupo tem trs bits para controle de suas operaes.
So eles:
cada uma das fontes possveis de interrupo apresentam os trs bits de controle de
operaes. Por exemplo:
Conversor analgico-digital:
EUSART:
MSSP:
A MSSP (Master Synchronous Serial Port Module) uma interface serial utilizada
para comunicao com outros perifricos
ou microcontroladores. Tais perifricos podem ser memrias EEPROM serial, drivers
para displays grficos, conversores A/D,
relgios de tempo real e etc. Este mdulo pode operar em um dos dois modos
disponveis:
CCP e ECCP:
Fontes chaveadas;
Controle de potncia e velocidade de motores;
*********************************************************INTERRUPES**************
*********************************************
Quando uma interrupo ativada a execuo do programa pula para uma rotina de
servio de interrupo (ISR).
RCON
INTCON
INTCON2
INTCON3
PIR1, PIR2
PIE1, PIE2
IPR1, IPR2
No geral as fontes de interrupo tem trs bits para controle de suas operaes,
so eles:
Enable bit: permite que a execuo do programa pule para o vetor de interrupo
quando o Flag bit for setado;
1 habilita prioridade.
/PD= Bit deFlag que sinaliza evento de Power-Down (economia de energia - SLEEP)
0 ocorreu evento de Power-Down
1 no ocorreu evento de Power-Down
/POR= Bit deFlag que sinaliza evento de POWER ON RESET (reset ao ligar)
0 ocorreu o evento de POWER ON RESET
1 no ocorreu o evento de POWER ON RESET
RBIE= Chave individual que ativa interrupo por mudana de estado RB4 a RB7.
0 desabilita interrupo
1 habilita interrupo
1 desabilita resistores.
0 Para o Timer0.
Quando optamos por uma fonte externa atravs do pino T0CKl (T0CS = 1), o mdulo
Timer0 ir trabalhar
como um contador incrementando o seu valor a cada borda de subida ou descida do
sinal aplicado a esta entrada.
J quando optamos por uma fonte interna de clock (T0CS = 0), o mdulo Timer0 ir
trabalhar como um temporizador.
O registrador TMR0H tem o seu valor atualizado com o contedo do byte mais
significativo do mdulo Timer0 durante a leitura de TMR0L.
Assim possvel fazer a leitura de todos os 16 bits do Timer0.
EXEMPLO:
O clock de um PIC de 4MHz, utlizado o prescaler de 1:256 e contagem de 0 a 256,
qual ser o tempo?
t = 1 * 256 * 256;
t = 65536us ou 65,536ms
O modo de operao sleep tem como principal funo a parada de todas as fontes de
clock do microcontrolador.
Dessa forma todo chaveamento de corrente desligado, fazendo com que o consumo de
corrente do dispositivo reduza a nveis muito baixos (apenas correntes de fuga).
Existem trs modos possveis de operao para o PIC 18F4520, so eles: