Ir ao conteúdo

Posts recomendados

Postado

 Galera quero executas alguns sons com o pic ao enviar um bolso através do pinoB0 por exemplo, no proteus esta funcionando perfeitamente mas na pratica não, alguma dica? 

 Esse é um exemplo simplificado da programação pois se conseguir resolver esse problema consigo adequar a todo projeto.

Desde já muito obrigado

 

#include <16f877a.h>
 
#define AF PIN_D7
 
 
 
#define C1 7645
#define Cs1 7216 // #sustenido
#define d1 6811
 
/*G#1 103,83 0,009631 4816
A1 110,00 0,009091 4546
A#1 116,54 0,008581 4291
B1 123,47 0,008099 4050
C2 130,81 0,007645 3823
C#2 138,59 0,007215 3608
D2 146,83 0,00681 3405
D#2 155,56 0,006428 3214
E2 164,81 0,006067 3034
F2 174,61 0,005727 2864
F#2 185,00 0,005405 2703
G2 196,00 0,005102 2551
G#2 207,65 0,004816 2408
A2 220,00 0,004545 2273
A#2 233,08 0,00429 2145
B2 246,94 0,00405 2025
C3 261,63 0,003822 1911
C#3 277,18 0,003608 1804
D3 293,66 0,003405 1703
D#3 311,13 0,003214 1607
E3 329,63 0,003034 1517
F3 349,23 0,002863 143*/
 
#fuses NOWDT // CONFIGURAÇÕES DO PIC
#use delay (clock=4000000)
void N(int16 nota,int16 dur)
{int16 i;
for(i=0;i<dur;i++)
{
output_high(AF);
output_low(AF);
delay_us(nota);
}
delay_ms(50);
}
void main(){
int16 t;
while(true){
 
    
   
   if(input(pin_b0)==0){
  
   N(C1,200);
 N(d1,200);
   delay_ms(300);
         N(C1,200);
            N(d1,200);}
}}
 
post-777948-0-04118700-1439739743_thumb.
 
 
  • Membro VIP
Postado

Legal seu projeto amigo. De fato já fiz algo assim pra gerar beeps multitonais.

Bom, só pra constar, não conheço este compilador. Veja se está configurando direito seu oscilador. Provavelmente é naquele #fuses. Pro proteus ele não faz diferença. Também veja se não está esquecendo do rc no pino reset (escondido no seu desenho)

  • Membro VIP
Postado

Amigo, deduzo ser extremamente fácil usar a diretriz #fuses para tal façanha. Talvez uma olhadela no manual ou nos exemplos que devem vir com o compilador. Ou até mesmo um poucos cliques no google podem ajudar. No entanto, caso ninguém se proponha a te ajudar nesta empreitada, você pode definir os fusíveis o próprio programador na hora de gravar. Defina como XT se seu cristal for menor que 4MHz e HS se maior. Deve ser fácil achar este campo de alteração no menu do programador seja ele qual for.
Ou aguarde a opinião de um especialista no ccs que prefiro não entender ok?

Postado

use esses fuses meio que padrão para o 877, a não ser que queira proteger a memoria e tal.. altere retirando o no da frente do fuse

 

#FUSES NOWDT                 //No Watch Dog Timer
#FUSES XT                     //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES PUT                   //Power Up Timer
#FUSES NOPROTECT             //Code not protected from reading
#FUSES NODEBUG               //No Debug mode for ICD
#FUSES NOBROWNOUT             //No brownout reset
#FUSES NOLVP                 //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                 //No EE protection
#FUSES NOWRT                 //Program memory not write protected
#FUSES RESERVED               //Used to set the reserved FUSE bits
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!