Hallo Forum,
ich wollte hier mir mal eine Platine mit QTouch (genauer eig mit
QMatrix) aufbauen.
Obwohl ich sonst nicht mit dem Atmel Studio arbeite, nuteze ich es wegen
dem QTouch Composer jetzt doch. Damit habe ich mir ein Projekt
eigerichtet und wollte es jetzt nun testen.
Ich habe nichts am Code, den das Studio erzeugt geändert, nur eine
UART-Ausgabe hinzugefügt. Diese funktioniert auch.
Dank dieser habe ich erkannt, dass sich der AVR (ATmega328p) immer
wieder resettet. Duch UART-Debugging konnte ich die "Absturzstelle"
finden:
1 | void touch_init( void )
|
2 | {
|
3 | #ifdef _ATXMEGA_
|
4 | //...
|
5 | #endif
|
6 | /* Configure the Sensors as keys or Keys With Rotor/Sliders in this function */
|
7 | config_sensors();
|
8 | uart_puts("call qt_init_sensing\n");
|
9 | /* initialise touch sensing */
|
10 | qt_init_sensing();
|
11 | uart_puts("qt_init_sensing called!\n");
|
12 | /* Set the parameters like recalibration threshold, Max_On_Duration etc in this function by the user */
|
13 | qt_set_parameters( );
|
14 | //...
|
15 | }
|
Die UART-Ausgabe "call qt_init_sensing" erscheint noch, danach startet
der AVR neu (und meldet sich mit dem von mir programmierten "Hallo Welt"
aus der Hauptschleife wieder)
Kann mir jemand helfen und sagen, woran der Reset liegen könnte.
Ich vermute, dass
- es nicht an den Interrupts liegt, da diese vom AVR-Studio definiert
werden, also kein fehlender Handler
- es also am Code innerhalb der lib libavr5g3_32qm_8x_4y_k_0rs.a leigt,
leider ist dieser nicht nur schon kompiliert, sondern auch die
Funktionsnamen obfuscated.
Vllt hatte schon jemand ein ähnliches Problem
Ich hänge auch einfach mal das ganze Projekt an (.lss file ist drinnen)
Danke schon mal im voraus
N.G.