IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Embarqué Discussion :

Signal triangulaire avec un XMEGA


Sujet :

Embarqué

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Signal triangulaire avec un XMEGA
    Salut à tous,

    Je dois créer un programme pour générer un signal triangulaire en langage C avec un XMEGA ce signal triangulaire aura une fréquence de 50khz en d'autre terme faire un compteur Up/Down qui monte et qui descend et ensuite un convertisseur DAC pour convertir à la fréquence désirée mais je ne sais pas comment m'y prendre pour y arriver. Est ce qu'il existe des exemples pour avoir une idée ou m'orienter vers un lien qui explique la génération de signaux.

    Merci

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 6
    Points : 5
    Points
    5
    Par défaut signal triangulaire avec un XMEGA
    Bonsoir,

    J'ai un programme pour la génération du signal triangulaire en C pour le XMEGA mais quand je le compile il me met une erreur que je ne vois pas. pourriez vous me dire si vous la voyez.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    #include "dac_driver.h"
     
    
    int main (void)
     {
     uint16_t angle;
     
    /* Given 2 MHz CPU speed, this is configured to 2µs separation time and
     * 16µs refresh time.*/
     
    DAC_DualChannel_Enable( &DACA,
     DAC_REFSEL_AVCC_gc,
     false,
     DAC_CONINTVAL_4CLK_gc,
     DAC_REFRESH_32CLK_gc );
     
    /* Use a 12 bit variable to output two triangle waves, separated by 180 degrees phase, as fast as possible. */
     
    while (1) {
     for ( angle = 0; angle < 0x1000; ++angle ) {
     while ( DAC_Channel_DataEmpty( &DACA, CH0 ) == false ) {
     
    /* Blocking code waiting for empty register. */
     }
     DAC_Channel_Write( &DACA, angle, CH0 );
     
    while ( DAC_Channel_DataEmpty( &DACA, CH1 ) == false ) {
     
    /* Blocking code waiting for empty register. */
     }
     
    DAC_Channel_Write( &DACA, 0xFFF - angle, CH1 );
     }
     
    for ( angle = 0; angle < 0x1000; ++angle ) {
     
    while ( DAC_Channel_DataEmpty( &DACA, CH0 ) == false ) {
     
    /* Blocking code waiting for empty register. */
     
    }
     
    DAC_Channel_Write( &DACA, 0xFFF - angle, CH0 );
     
    while ( DAC_Channel_DataEmpty( &DACA, CH1 ) == false ) {
     
    /* Blocking code waiting for empty register. */
     
    }
     
    DAC_Channel_Write( &DACA, angle, CH1 );
     }
     }
     }
    Et le message d'erreur est le suivant:

    21:21:18 **** Build of configuration Release for project dac_triangle ****
    make all
    Building file: ../dac_triangle.c
    Invoking: AVR Compiler
    avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atxmega256a3 -DF_CPU=32000000UL -MMD -MP -MF"dac_triangle.d" -MT"dac_triangle.d" -c -o "dac_triangle.o" "../dac_triangle.c"
    Finished building: ../dac_triangle.c

    Building target: dac_triangle.elf
    Invoking: AVR C Linker
    avr-gcc -Wl,-Map,dac_triangle.map -mmcu=atxmega256a3 -o "dac_triangle.elf" ./dac_triangle.o
    c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avrxmega6/crtx256a3.o.init9+0x0): undefined reference to `main'
    make: *** [dac_triangle.elf] Error 1

  3. #3
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Invoking: AVR C Linker...
    ....undefined reference to `main'
    Ce n'est pas une erreur de compilation mais d'édition des liens : ton code compile correctement mais il n'y a pas de fonction main, il est donc impossible pour l'éditeur des liens de créer le fichier exécutable.

Discussions similaires

  1. [Débutant] Réaliser un signal triangulaire avec période variable
    Par icetoby dans le forum Signal
    Réponses: 2
    Dernier message: 19/06/2013, 09h17
  2. Génération d'un signal virtuel avec DAQmx
    Par Marc29 dans le forum LabVIEW
    Réponses: 1
    Dernier message: 05/06/2008, 15h10
  3. Signal carré avec Delphi
    Par bahja_83 dans le forum Langage
    Réponses: 1
    Dernier message: 08/05/2008, 08h45
  4. echantillonnage de signal son avec c++ builder
    Par pack8 dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/05/2008, 19h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo