Funo
output_high()
output_low()
Descrio
Exemplo
output_high(PIN_D0);
output_high(PIN_C2);
output_low(PIN_D0);
output_low(PIN_C2);
if (input(PIN_A1))
{
output_high(PIN_D0);
x = input(PIN_A4);
}
output_a(VAR1);
output_b(0xff);
output_c(VAR1);
output_d(0xff);
output_e(VAR1);
int VAR1;
VAR1 = input_a();
int VAR1;
VAR1 = input_b();
int VAR1;
VAR1 = input_c();
int VAR1;
VAR1 = input_d();
int VAR1;
VAR1 = input_e();
#use delay (clock=4000000)
#define use_portb_lcd true
#include <lcd.c>
...
void main()
{
...
lcd_init();
...
}
input()
output_a()
output_b()
output_c()
output_d()
output_e()
input_a()
input_b()
input_c()
input_d()
input_e()
lcd_init()
Inicializa o LCD
lcd_putc()
delay_ms()
delay_us()
printf()
lcd_putc(\fTESTE);
delay_ms(VAR1);
delay_ms(100);
delay_us(10);
delay_us(VAR1);
float VAR1;
int VAR2;
long VAR3;
printf(lcd_putc, \f TESTE %f, VAR1);
printf(lcd_putc,\fTESTE\n %lu %f, VAR3, VAR1);
DECLARAO DE VARIVEIS
Tipos de dados
int
signed int
long
signed long
float
boolean
int32
signed int32
char
Descrio
exemplo
variveis inteiras de 8 bits, sem sinal, capacidade de 0 a 255
int X, Y=1, VAR1=0;
variveis inteiras de 8 bits com sinal, capacidade de 128 a 127
signed int VAR3 = -10;
variveis inteiras de 16 bits, sem sinal, capacidade de 0 a 65535
long A, B = 0, VAR2;
variveis inteiras de 16 bits, com sinal, capacidade de 32768 a signed long GRAU=0;
32767
variveis reais, representadas em 32 bits, com sinal.
float VAR4, VAR5;
variveis lgicas, de um bit, podendo valer 0 ou 1
boolean FLAG1=0, SENSOR;
variveis inteiras de 32 bits, sem sinal, podendo valer de 0 a int32 CONTADOR;
4294967295
variveis inteiras de 32 bits, com sinal, podendo valer de - signed int32 VAR10;
2147483648 a 2147483647
variveis inteiras de 8 bits, que tipicamente armazenam caracteres.
char C = a, LETRA = , H;
OPERADORES
+ (adio)
- (subtrao)
* (multiplicao)
/ (diviso)
% (resto)
== (igual)
!= (diferente)
> (maior que)
< (menor que)
>= (maior igual)
| (ou binrio)
>> (rotao binria para direita)
<< (rotao binria para esquerda)
~ (negao binria)
^ (ou exclusivo)
= (atribuio)
++ (incremento)
-- (decremento)
Int
signed int
long ou int32
signed long
int em hexadec.
Float
Caractere
String
float (not.cientf.)
long hex
smbolo %
int (3 casas)
int (3 digitos c/ zeros esq.)
float (2 casas dec.)
Caracter
especial
\f
\n
\\
\0
Funo
Limpar display
Pular linha
Barra invertida
Null
Exemplos de uso :
int vlr;
....
printf(lcd_putc,\f Valor: %u, vlr);
float a, b; int c;
...
printf(lcd_putc,\fCont: %u \nX:%1.2f Y:%1.2f, c, a, b);
switch (varivel)
{
case VALOR1 : instrues;
break;
case VALOR2 : instrues;
break;
default
: instrues;
}
if (condio)
{
instrues;
}
Estruturas de repetio :
do {
instrues;
} while(condio);
---------------------------------while(condio)
{
instrues;
}
--------------------------------while(condio);
while(1)
{
instrues;
}
--------------------------------for (expresso1; expresso2; expresso3)
{
instrues;
}
por um label
Desvia a execuo para uma posio de
ROM
Retorna o valor de uma varivel de ambiente
goto_address()
getenv()
BIT/BYTE
FUNES DE I/O VIA RS232
getc() ou getchar();
putc() ou putchar();
fgetc();
gets();
puts();
fgets();
fputc();
fputs();
printf();
kbhit();
fprintf();
set_uart_speed();
perror();
assert();
Inicializa SPI
L da interface serial
Grava na interface serial
Retorna verdadeiro se existem dados
recebidos pela SPI
PWM
setup_ccpX();
set_pwmX_duty();
I2C
i2c_start()
i2c_stop()
i2c_read()
i2c_write()
i2c_poll()
PROCESSOR
sleep()
reset_cpu()
restart_cause()
disable_interrupts()
ext_int_edge()
read_bank()
write_bank()
label_address()
shift_right()
shift_left()
rotate_right()
rotate_left()
bit_clear()
bit_set()
bit_test()
swap()
make8()
make16()
make32()
ANALOG
setup_comparator()
setup_adc_ports()
setup_adc()
set_adc_channel()
read_adc()
Configura o comparador
Configura portas usadas pelo conversor AD
Configura o AD
Determina o canal a ser utilizado
L valor do canal AD ativado
MATEMTICAS
abs()
acos()
asin()
atan()
ceil()
cos()
exp()
floor()
labs()
sinh()
log()
log10()
pow()
sin()
cosh()
tanh()
fabs()
fmod()
atan2()
frexp()
ldexp()
modf()
sqrt()
tan()
div()
ldiv()
VOLTAGE REF
setup_vref()
STANDARD
atoi()
atoi32()
atol()
atof()
tolower()
toupper()
isalnum()
isalpha()
isamoung()
isdigit()
islower()
isspace()
isupper()
isxdigit()
strlen()
strcpy()
strncpy()
strcmp()
stricmp()
strncmp()
strcat()
strstr()
strchr()
strrchr()
strtok()
strspn()
strcspn()
strpbrk()
strlwr()
sprintf()
isgraph()
iscntrl()
isprint()
strtod()
strtol()
strtoul()
strncat()
strcoll()
strxfrm()
TIMERS
setup_timer_x()
set_timer_x()
get_timer_x()
setup_counters()
setup_wdt()
restart_wdt()
DELAYS
delay_us()
delay_ms()
delay_cycles()
malloc()
calloc()
free()
realloc()
memmove()
memcmp()
memchr()
EEPROM
read_eeprom()
write_eeprom()
read_program_eeprom()
write_program_eeprom()
read_calibration()
write_program_memory()
read_program_memory()
write_external_memory()
erase_program_memory()
STANDARD C
setup_external_memory()
memset()
memcpy()
offsetof()
STANDARD C SPECIAL
offsetofbit()
rand()
srand()
#include <16f877.h>
#device ADC=10
// para conversor analgico-digital de 10 bits
#use delay (clock=4000000) // mudar conforme velocidade do cristal usado
#define use_portb_lcd true // fora biblioteca de lcd a usar o PORTB
#include <lcd.c>
// inclui biblioteca do lcd
int VG1;
// declara varivel global. Vale em todo o programa
void rotina()
// declara uma subrotina (funo) chamada rotina
{
long X;
// varivel local. S vale dentro da funo rotina
while(!input(PIN_E2))
{
if (input(PIN_A1) || X == 50)
{
output_high(PIN_B3);
X = 0;
}
else
{
output_low(PIN_B3);
}
X ++;
delay_ms(100);
}
}
void main() // programa principal
{
int var;
// varivel local. S pode ser usado dentro da funo MAIN
lcd_init();
// inicializa o display
while(1)
{
if (input(PIN_A1))
{
rotina();
}
if (input(PIN_A2))
{
for (var=0; var<10; var ++)
{
output_high(PIN_D0);
delay_ms(100);
output_low(PIN_D0);
delay_ms(100);
}
}
}
}
Expect ;
Expect }
Expect comma
Expect WHILE
Expecting :
Expecting =
Expecting a (
Expecting a , or )
Expecting a , or }
Expecting a .
Expecting a ; or ,
Expecting a ; or {
Expecting a close paren
Expecting a declaration
Expecting a variable
Expecting a ]
Expecting a {
Expecting an =
File cannot be opened
Filename must start with " or <
Identifier is already used in this
scope
No MAIN() function found
Not enough RAM for all variables
Out of ROM, A segment or the
program is too large
Printf format type is invalid