• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Zafa

Programar PIC 16F874a

5 mensagens neste tópico

Boas.

Será que alguem me podia recomendar 1 livro de preferencia em Portugues referente em programação de PIC em linguagem C é que estou pela primeira vez a trabalhar com PIC's neste caso a 16f874a para um projecto de controlo de um motor AC para controlar as rotações e a pressão do ar e outro para as rotações e Pressão da água mas por mais que pesquise no forum e na net não encontro nada tipo para principiantes que me explique o que sao interrupts e como usar o clock interno da pic e coisas do estilo tipo usar a pic para detectar a passagem por zero.

Se estiver aí alguem desse lado que me posso indicar material de apoio agradeco. :)

É assim eu preciso de programar uma PIC destas 3 (16f84a, 16f874a ou 16f877a) para o Projecto final de curso, só que a minha experiência com PIC's é praticamente nula, porque no meu curso antes de bolonha a cadeira de Microcontroladores era dada no 4º ano e agora é no 3º. E como tal precisa da vossa ajuda de modo a obter os conhecimentos básicos para programar uma PIC tais como o que é um interrupt ou qual o modo como funciona e em que situações é usado ou como usar o timer interno da PIC ou como fazer a detecção da passagem por zero apenas com a PIC. já procurei na serie de livros Dummies se havia alguma coisa, a modos que estou seriamente a pensar comprar material de leitura pois on-line não encontro nada que me tira as duvidas.

Pelo que se alguem me pudesse recomendar leitura para principiantes era porreiro pois a PIC do projecto tambem vai contar para nota noutra cadeira.

Eu e o meu colega de grupo desenvolvemos este código para contar 10ms que é metade do periodo da rede eléctrica. Alguem me sabe dizer se o código esta correcto? é que no simulador PIC Simulator IDE - Evaluation Copy v6.34 que estou a usar para testar o código no PC isto para nos 9.8ms e se aumentar o numero de ciclos de 24 para 25 isto ja conta 10.24ms aproximadamente pelo que não sei por isto com o falor exacto.

Alguem me sabe dizer onde posso encontrar info sobre como fazer uma detecção de passagem por zero apenas com a PIC sem usar um transistor ligados a um pino.

#include <16F874a.h>

#fuses NOWDT,HS, NOPUT, NOPROTECT

#use delay(clock=20000000)

int TIMER,valor; //Declaração de variáveis globais

//Rotina de interrupção com o temporizador TMR0

#int_rtcc

rtcc_handler()

{

TIMER++;

}

void main()

{

setup_timer_0(RTCC_internal|RTCC_div_8);//time=(8*4*256)/20Mhz=409.6us

enable_interrupts(int_rtcc);//activar interrupções

enable_interrupts(global);//activar interrupçoes globais

while(valor!=1)

{

if(TIMER >= 24)//Numero de Ciclos necessários para fazer 10ms=>24*409.6us=9.8ms

{

TIMER=0;

valor=1;

}

}

}

Não venho pedir que me façam o trabalho :D mas sim que me encaminhem(de preferencia no sentido correcto :cheesygrin:)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva,

Dado o tempo decorrido, uma vez que já estamos no fim de Agosto, não sei se as questões permanecem.

Em todo o caso se o problema persiste, "posta" aqui que posso dar uma ajuda.

Cumps,

jotalinux

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva felizmente já percebo um bocadito disto tendo em conta q o projecto é para entregar dia 17 de setembro. Ag ate ja uso uma 18F4620 devido á falta d capacidade da 16F877A.

No entanto agradeço a oferta de ajuda.

Cumps.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora