FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs  Galerie PhotosGalerie Photos   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

probleme de timers



 
Poster un nouveau sujet   Répondre au sujet    forums.jelectronique.com Index du Forum -> CodeVision AVR CodeVision AVR
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
zanzeoo
Invité





MessagePosté le: 30 Sep 2007 20:44    Sujet du message: probleme de timers probleme de timers Répondre en citant

salut a tous
j'essaye de generer un signal de 40Khz sur la broche PORTB.0 d'un atmega8

j'utilise l'osc interne de 1Mhz sans prescale

je charge donc le registre TCCR1B a 0x01 (prescale =1) les fusibles sont configurés pour avoir cksel3=0 cksel2=1 cksel1=0 cksel0=0 (1Mhz)



Pourtant la freq sur l'oscillo est d'environ 10Khz !!! je pige pas j'ai pourtant reussi avec des freq plus basses


voici le code:

/****************************** **********************
#include <mega8.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x01;

// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 8000,000 kHz
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x01;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

while (1)
{
if (TCNT1>=25)
{
PORTB.0^=1;
TCNT1=0;
};

};
}
Revenir en haut de page
nanick
HABITUE
HABITUE


Inscrit le: 28 Mai 2006
Messages: 70

MessagePosté le: 01 Oct 2007 6:02    Sujet du message: probleme de timers Répondre en citant

bonjour,

40khz --->1/40000= 25us avec un rapport cyclyque de 0.5 il faut basculer ta sortie à 12.5 us. en tounant à 1Mhz avec le code suivant,
Code:
while (1)
{
if (TCNT1>=25)
{
PORTB.0^=1;
TCNT1=0;
};


tu perd trop de temps.
à ùmon avis , soit il faut augmenter la fréquence de travail soit ( meilleure solution) mettre une interruption sur ton timer.

A +
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    forums.jelectronique.com Index du Forum -> CodeVision AVR Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous pouvez poster de nouveaux sujets dans ce forum
Vous pouvez répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Vous ne pouvez pas joindre des fichiers
Vous pouvez télécharger des fichiers


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com