Hallo mikrocontroller Community,
ich bin momentan ein wenig am Verzweifeln. Als Neuling im Bereich
Mikrocontroller stehe ich aktuell vor einigen Herausforderungen,
insbesondere bei der Syntax von Interrupts. Ich arbeite derzeit mit dem
Digital Power Starter Kit, auf dem ein dsPIC33CK256MP505 verbaut ist.
Der Mikrocontroller bietet die Möglichkeit, bei jeder Konvertierung
eines Kanals einen Interrupt aufzurufen. Leider bekomme ich vom Compiler
Fehlermeldungen, die darauf hinweisen, dass ich etwas falsch mache.
Könnte mir jemand bitte weiterhelfen und erklären, wie ich dem Interrupt
korrekt die ISR zuweise?
Vielen Dank im Voraus!
Zuerst die Funktion für die Interrupt Aufrufe aus der Header Datei des
adc1.h:
1 | /**
|
2 | * @ingroup adcdriver
|
3 | * @brief This function can be used to override default callback \ref ADC1_ChannelCallback
|
4 | * and to define custom callback for ADC1 Channel event.
|
5 | * Read the conversion result of the corresponding channel in the custom callback.
|
6 | * @param[in] callback - Address of the callback function.
|
7 | * @return none
|
8 | */
|
9 | void ADC1_ChannelCallbackRegister(void(*callback)(enum ADC_CHANNEL channel, uint16_t adcVal));
|
10 |
|
11 | /**
|
12 | * @ingroup adcdriver
|
13 | * @brief This is the default callback function for all the analog channels.
|
14 | * This callback is triggered once the channel conversion is done for a
|
15 | * channel and to read the conversion result of the corresponding channel
|
16 | * @param[in] channel - conversion completed channel
|
17 | * @param[in] adcVal - conversion result of channel
|
18 | * @return none
|
19 | */
|
20 | void ADC1_ChannelCallback(enum ADC_CHANNEL channel, uint16_t adcVal);
|
Und das ist mein Aufruf in der main.c Datei in der main- Funktion.
1 | ADC1_ChannelCallback(Channel_AN13,dings);
|
2 |
|
3 | ADC1_ChannelCallback(Channel_AN18,dings2);
|
Definitionen was in der ISR passieren soll:
1 | ADC1_ChannelCallback(Channel_AN13,dings)
|
2 | {
|
3 | adc_vin = ADCBUF12;
|
4 | adc_vbuck = ADCBUF13;
|
5 | Buck_Controller_Update(&Buck_Controller);
|
6 | // Buck_Controller_PTermUpdate(&Buck_Controller);
|
7 |
|
8 | }
|
9 |
|
10 | ADC1_ChannelCallback(Channel_AN18,dings2)
|
11 | {
|
12 | // adc_vin = ADCBUF12;
|
13 | adc_vboost = ADCBUF18;
|
14 | Boost_Controller_Update(&Boost_Controller); //Mit Pointer zum Boost_Voltage_Loop Control Object
|
15 | // Boost_Controller_PTermUpdate(&Boost_Controller);
|
16 | }
|