Interrupts in C++ übersetzen



  • Hallo - ich hoffe hier kann und mag mir jemand weiterhelfen...

    Ich hab diverse lauffähige Programme fürn nen ATMEL Test-borad mittels AVR geschrieben - nun hab ich die dumme aufgabe die selben programme nchmal fürn GNU-C compilewr zu machen - nur hab ich keinen blassen schimmer wie ich das mit den interrupts händeln kann?????

    hier mal die AVR Variante:

    //intledad.c
    #include<90s8535.h>
    #include<stdio.h>
    #define clock 4000000
    #define baud 19200
    
    unsigned int timecount=0;
    unsigned int rohw;
    unsigned int i;
    
    interrupt [TIM0_OVF] void timer0_ovf_isr(void)
    {
    TCNT0=6;
    if (++timecount==1000)
    {
    PORTD=PORTD^0x60;
    timecount=0;
    }
    }
    interrupt [EXT_INT0] void ext_int0_ist(void)
    {
    PORTD=0x80;
    }
    interrupt[ADC_INT] void adc_isr(void)
    {
    rohw=ADCW;
    }
    
    void main(void)
    {
    DDRD=0xf0;
    UCR=0x18;
    UBRR=0x0C;
    
    printf("--Hallo--\r\n\n\n\n\n\n\n");  
    for (i=0;i<10000;i++)
    {
    }
    
    TCCR0=0x02;
    TCNT0=0x00;
    TIMSK=0x01;
    GIMSK=0x40;
    MCUCR=0x02;
    ADMUX=0x0;
    ADCSR=0xE9;
    #asm("sei")
    
    while (1)
    {
    printf("Kan:%x Wert:%d \r\n", ADMUX,rohw);
    if(ADMUX<0x7)
    {
    ADMUX=ADMUX+0x1;
    }else
    {
    ADMUX=0x0;
    printf("\n");
     }
     }
     }
    

    ...dat sollt laufen....

    gibt mir ne Wertabfrage an meinen channels aus...

    und wie läuft das mit GNU-C ?????
    irgendwo an den interrupts hängts wohl - aber viel weiter weis ich beim besten willen net...

    Wenn mir jemand helfen mag wär ich sehr Dankbar..

    Andi



  • Seh ich das richtig dass du das Beispiel auf den avr-gcc portieren willst?

    Wenn ja kann ich es dir in 22 min sagen *zurück-zum-TV-geh*


Anmelden zum Antworten