- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: RP6 Fernsteuerung über RC-Empfänger

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    10.08.2007
    Beiträge
    47
    Anzeige

    Praxistest und DIY Projekte
    @Pr0gm4n: schau dir diese zeile mal genau an:
    Code:
    volatile uint16_t p=0;
    das schluesselwort "volatile" ist wichtig ...
    es bedeutet, das der Inhalt der Variable sich durch "aeussere" Einfluesse aendern kann

    btw. da eine ISR kein Rueckgabewert hat, wird ueber volatil definierte Variablen der Datenaustausch geregelt

    hth
    KaY

  2. #12
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo Pr0gm4n

    Wenn ich schreibe:
    Nun habe ich die Funktion getestet, wie erwartet funktioniert das wunderbar
    dann habe ich es auch getestet und es funktioniert. Das ist p:

    volatile uint16_t p=0;

    und wird in der ISR runtergezählt sofern sein Wert !=0 ist:

    if(count<2000)count++; else { count=1; if(p) p--; }

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.01.2008
    Ort
    Zürich
    Beiträge
    604
    Hi radbruch,

    sry, mein Fehler...


    hab das irgendwie übersehen, aber danke für die nette Erklärung

    ich meinte ja nur, dass es beim "testen" auch manchmal (wie bei mir letztes mal) einfach klappt, weil bestimmte programmabschnitte garnicht aufgerufen werden bzw. nicht so sehr auffallen wenn dann Dauerpause ist


    MfG Pr0gm4n

  4. #14
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Die Pause ist in der Hauptschleife. Es wäre ungünstiig wenn es eine endlose Pause wäre...

    sry, mein Fehler...
    kein Problem
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  5. #15
    Benutzer Stammmitglied
    Registriert seit
    01.05.2008
    Beiträge
    52
    Also ich weiß ja nich wie du das gemacht hast mit der abgespeckten RP6-Library aber egal wie ich es dreh und wende ich bekomm imme rnur haufenweise Warnungen und Fehler wenn ich das 1 zu 1 kopierte kompilieren will.

    Um es besser zu erklären,
    den code oben hab ich 1 zu 1 kopiert und in ne C datei gepoackt.
    Das makefile hab ich dahingehend angepasst das ich eben den namen der c datei als target eingetragen hab.
    Nur was ich mit den 2 Library files machen muss weiß ich noch nicht so genau.
    In einen eigenen ordner in RP6Lib kopieren und diesen unter RP6_LIB_PATH_OTHERS= eintragen hat nichts gebracht. Auch den Ordner direkt angeben als RP6_LIB_PATH=
    hat nichts gebracht.

    Was ist an deinen Librarys denn anders bis auf die tatsache das da einiges fehlt was in den normalen drin ist?

  6. #16
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Was ist an deinen Librarys denn anders bis auf die tatsache das da einiges fehlt was in den normalen drin ist?
    Es sind nur ein paar grundsätzliche Funktionen die man in erster Linie zum Debugen benötigt. Das Tasksystem und die Stopwatches fehlen komplett, dafür sind aber auch die betreffenden Timer frei und können beliebig genutzt werden.

    Mit den makefiles kenne ich mich nicht aus, ich verwenden kamavr, das erstellt die makefiles automatisch. Die Dateien sollten sich im selben Verzeichniss wie der Quellcode des Programms befinden.

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  7. #17
    Benutzer Stammmitglied
    Registriert seit
    01.05.2008
    Beiträge
    52
    Hmmm hab mir mal nun das kamavr runtergalden (http://www.avrfreaks.net/index.php?m...em&item_id=632)
    Hab dort dann ein neues Projekt erstellt, ne c Datei mit dem Code von dir hinzugefügt, und dann die zwei Bilbiothek-Files von dir ebenfalls ins Projekt integriert und in den gleiche ordner geschoben wo das projekt gespeichert wird.
    Dann noch den CPU Typ von atmega128 auf atmega32l gestellt (auf der mainplatine is es ja nen atmega32l) wenn ich dann ihm sag er soll compilieren oder er soll des make mahen oder des build bringt er mir 90 fehler und 2 Warnungen. Als erstes bringt er die Meldung:
    MCU 'atmega32l' supported for assembler only

    Wie darf ich denn das verstehen?

    Wenn ich atmega32 als CPU Typ eintrage compiliert er mir zwar fehlerlos, aber wenn ich dort dann make oder build sag bringt er mir 54 Fehler und 2 Warnungen.

    Tut mir leid das ich so viele Fragen stell, aber ich bastel das erste mal mit dieser Software rum. Und ich muss erstmal hinbekommen das die so funktioniert wie ich will, bzw muss ich erstmal wissen wie die funktioniert.


    Was anderes, immer wenn ich kamavr starte bringt er die Meldung er findet den WinAVR Ordner nicht. Wenn ich ihm zeige wo er is, is er zufrieden. Kann man das nicht irgendwo fest eintragen?


    EDIT: Bin nun nach weiterem probieren und studieren etwas weiter gekommen.
    Hab mir als erstes mal die letzte Version von kamavr gezogen (dieses kamavrwork das ist nun v 5.6.5.56) und dort dann weiter gebastelt.
    Das problem mit dem winavr ordner und dem CPU Typ ist zwar immer noch, aber wenn ich jetzt mit atmega32 das mache compiliert er mir ohne Probleme. Wenn ich aber nen make mache bringt er irgendwann die Meldung "Done, with unknown error."
    Lediglich im log steht dann das
    Code:
    avr-gcc -mmcu=atmega32 -Os -mno-interrupts -funsigned-char -funsigned-bitfields -Wall -Wstrict-prototypes -gstabs -c -DF_CPU=8000000UL -Wa,-acdhlmns=Fernsteuerung.lst Fernsteuerung.c -o Fernsteuerung.o
    avr-gcc -mmcu=atmega32 -Os -mno-interrupts -funsigned-char -funsigned-bitfields -Wall -Wstrict-prototypes -gstabs Fernsteuerung.o -o Fernsteuerung.elf -Wl,-Map=Fernsteuerung.map --cref -lm
    avr-objcopy -j .text -j .data -O ihex Fernsteuerung.elf Fernsteuerung.hex
    avr-objcopy -j .eeprom --change-section-lma .eeprom=0 -O ihex Fernsteuerung.elf Fernsteuerung_eeprom.hex
    avr-objcopy: there are no sections to be copied!
    avr-objcopy: --change-section-lma .eeprom=0x00000000 never used
    make: *** [Fernsteuerung_eeprom.hex] Error 1
     2

    EDIT2: Wie ich nach ettlichem hin und her gesehen hab hat die fehlermeldung nichts mit meinem Programm an sich zu tun. Wenn man genau hinschaut sieht man ja das er nur meckert das des hex-File für den EEProm keine Daten enthällt. Is ja schließlich auch nich gedacht das ich da irgendwas in nen eeprom speichern will.
    Die Programme laufen nun. Nun muss ich nur endlich mal die ganzen Anschlüsse für das proejtk hier basteln un dann kann ich das alles testen ))
    Danke euch allen

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress