Liste der Anhänge anzeigen (Anzahl: 1)
Ich sass etwas auf heissen Kohlen weil ich meine beiden *lib*.h nicht mitgegeben hatte. Die unterschiedlichen Versionen verwenden unterschiedliche Bibliotheken. Die waitms(xx) wollte ich schon rauswerfen, sie stammt aus der header-Datei zum RNControl-Demoprogramm. Sie dient hier eher untergeordneten, also unkritischen Pausen, daher habe ich sie vorerst doch noch benutzt. WENN ich die zukünftig noch nutzen muss, werde ich sie vom Timerwert aus der SIG_OUTPUT_COMPARE0 ableiten.
Die beiden geposteten Progrämmchen hatte das AVRStudio aber compiliert ? ! ? ?
Bei der Übersetzung der "2_drehzahlen-x26.c" bekomme ich vom AVRStudio folgende build-meldungen:
Build started 20.12.2007 at 00:42:01
avr-gcc.exe -I"D:\pro-fils_D\computer+mcontroller\C1 mC Projekte\2_drehzahlen\util" -mmcu=atmega16 -Wall -gdwarf-2 -std=gnu99 -O0 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT 2_drehzahlen.o -MF dep/2_drehzahlen.o.d -
c ../2_drehzahlen.c
avr-gcc.exe -mmcu=atmega16 -Wl,-Map=2_drehzahlen.map 2_drehzahlen.o -o 2_drehzahlen.elf
avr-objcopy -O ihex -R .eeprom 2_drehzahlen.elf 2_drehzahlen.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O ihex 2_drehzahlen.elf 2_drehzahlen.eep || exit 0
c:\Programme\WinAVR-20070525\bin\avr-objcopy.exe: there are no sections to be copied!
avr-objdump -h -S 2_drehzahlen.elf > 2_drehzahlen.lss
AVR Memory Usage
----------------
Device: atmega16
Program: 1870 bytes (11.4% Full)
(.text + .data + .bootloader)
Data: 24 bytes (2.3% Full)
(.data + .bss + .noinit)
Build succeeded with 0 Warnings...
und die 2_drehzahlen.lss sieht so aus: (siehe nächstes Posting - Zeichenlimit ist überschritten).... aber diesen Code bin ich noch nicht durchgegangen. Aber die SIG_INTERRUPT0 sieht darin "glaubhaft" aus. Anmerkung: Ich habe erst vorhin festgestellt, dass es so eine Datei nach dem Compilieren gibt. Wie gesagt: ich bin eher Anfänger.
Der hexfile läuft auf meiner RNControl mit korrekter Funktion der TimerIRS - also das Zeitraster stimmt und auch z.B. das Umschalten der LED zum vorgegebenen Zählerstand innerhalb der ISR. Auch die Motoransteuerung funktioniert korrekt - bis auf die zeitliche Genauigkeit der waitms - klar. Es fehlt vollständig die Funktion der IRS für die beiden externen Interrupts.
Ich weiss leider nicht, wo die AVR-libc benutzt wird - da sehe ich noch nach. Zu meiner Schande muss ich gestehen, dass ich von dieser lib erst seit Deiner Bemerkung weiss. Das user manual der lib trägt den Titel
avr-libc Reference Manual
1.4.6
Generated by Doxygen 1.4.7
Tue May 15 14:56:11 2007
. . . das wäre doch (fast) die von Dir genannte Aktualität?
Soweit ich das also betrachtet hatte (als C-Anfänger) sah das alles glaubhaft aus, bis auf die ausbleibenden externen Interrupts. Jetzt weiss ich nicht weiter.