1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Programação em PIC

Discussão em 'Programação' iniciada por zafa, 13 de Abril de 2007. (Respostas: 6; Visualizações: 1741)

  1. zafa

    zafa Power Member

    Boas.

    Será que alguem me podia recomendar 1 livro de preferencia em Portugues referente em programação de PIC é qeu 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.
    Cumps
     
  2. wolftec

    wolftec Power Member

    Pois, eu estou para escrever um livro desses há montes de tempo, e já o devia ter editado o ano passado, mas ainda não tive tempo de passar do indice.

    Na net podes encontrar coisa muito fixes, e no site da microchip podes encontar muitos "application notes" que te podem ajudar.

    A representante da microchip em portugal é a Digicontrole e eles costumam ter uns cd's da microchip cheios de application notes.

    Já vi nas livrarias Bertrand uns livros em brasileiro sobre o PIC's mas eram antigos pois baseavam-se nos P16F84, no entanto são uma porta de entrada para o mundo dos pic.

    Se tiveres algumas duvidas posta aqui que talvez eu, ou mais alguem te possa ajudar.
     
  3. _Neo__

    _Neo__ Power Member

    vai aqui os isbn dos que tenho
    85-7194-737-6 - "16F877A Conectando o PIC" - um irmão desse com mais memoria compatível pino por pino, pelo menos não vi diferenças alem da memoria numa vistoria pelos data sheets
    85-365-0059-X - "Microcontroladores PIC 16F628A/648A" - O perfeito substituto para o primitivo 16f84 mas também já existem mais recentes :)
     
  4. GOYA

    GOYA Power Member

    diz o que precisas talvez te possa ajudar
     
  5. zafa

    zafa Power Member

    Vou onde? não percebi :wow:

    É 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 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.

    Espero que percebam o que escrevi.
    Cumps:x2:
     
  6. zafa

    zafa Power Member

    Boas.

    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 transistors 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;
    }
    }
    }

    Cumps e obrigado desde já pela ajuda:x2:
     
  7. _Neo__

    _Neo__ Power Member

    com os isbn e o titulo podes encomendar os livros numa livraria
     

Partilhar esta Página