- fchao-Sinus-Wechselrichter AliExpress         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 23

Thema: RP6 und RC

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.10.2007
    Ort
    Solingen
    Alter
    31
    Beiträge
    177
    Anzeige

    LiFePo4 Akku selber bauen - Video
    uups, die Smilies sollen Achten sein.

  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 blenderkid

    Poste doch mal dein komplettes Programm (möglichst aufs nötigste reduziert, möglichst kopiert und nicht nachgeschrieben wie "mSpleep(200); und in code-Tags), so dass man es im Umfeld betrachten kann. Erster Tipp: falsche (oder keine) Kanal-Nr. an RC() übergeben.

    Man kann einen Eintrag hier im Forum auch editieren. Um die lästigen ;)-Smilies zu unterdrücken, kann man unten das Häckchen bei "Smilies in diesem Beitrag deaktivieren" reinmachen.

    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 Fleißiges Mitglied
    Registriert seit
    25.10.2007
    Ort
    Solingen
    Alter
    31
    Beiträge
    177
    Ok hier also der Code aufs nötigste reduziert

    Code:
    uint8_t RC(uint8_t kanal)
    {
    	if (kanal == 1)
    	{
    		while(!(PINA&8));
    		
    		timer=0;
    	
    		
    		while(PINA&8);
    	
    		return (timer);	
    	}
    	if (kanal == 2)
    	{
    		while(!(PINA&4));
    	
    		timer=0;
    	
    		while(PINA&4);
    	
    		return (timer);	
    	}
    	return(0);
    }
    
    void moveCommand(behaviour_command_t * cmd)
    {
    	RCcount=RC(1);
    	RCcount2=RC(2);
    	writeInteger(RCcount,10);
    	writeChar('\n');
    }
    
    int16_t main(void)
    {
    	initRP6Control();  
    	
    	DDRA &= ~ADC3;
    	DDRA &= ~ADC2;
    	PORTA &= ~12;
    	startStopwatch6();
    	startStopwatch7();
    
    	writeInteger(timer,10);
    	mSleep(200);
    	writeInteger(timer,10);
    	while(true) 
    	{
    		moveCommand(0);
    	}
    	return 0;
    }

    Hier kommt immer 0 heraus.

    mfg blenderkid

  4. #14
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.10.2007
    Ort
    Solingen
    Alter
    31
    Beiträge
    177
    vielleicht wegen dem return(0); ?

  5. #15
    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 blenderkid

    Was ich nun halt immer noch nicht weiß: Wie ist bei deinem Programm die Variable "timer" deklariert.

    Egal, für einen schnellen Test kannst du folgendes ändern:

    erstes timer=0; in timer=11;
    zweites timer=0; in timer=22;
    und das return(0); in return(33);

    Bei 11 oder 22 stimmt etwas nicht mit dem timer, dann mal timer durch delay_timer ersetzen(beide sind gleichschnell 0,1ms!). 33 wird wohl nicht auftreten.

    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!

  6. #16
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Wie ist bei deinem Programm die Variable "timer" deklariert.
    Braucht er nicht zu deklarieren - ist im RP6Lib drin als
    volatile uint16_t timer;


    @Blenderkid: Du hast aber auch an ADC0 oder ADC1 was angeschlossen? Eventuell mal den anderen Kanal verwenden falls Du da was verwechselt hast beim anschließen?

    Poste mal nach den Modifikationen die mic vorgeschlagen hat die komplette Ausgabe des Programms!

    Und zusätzlich würde ich einfach an vielen Stellen (z.B. Beginn/Ende einer Funktion, in den If Bedingungen etc. ) mal probeweise
    writeString_P("#1#\n");
    ...
    writeString_P("#2#\n");
    ...
    usw. hinschreiben immer mit anderen Nummern natürlich. Dann weisst Du genau an welche Stellen Dein Programm hinspringt und wo es hakt.

    Evtl. noch ein mSleep(100) in die Hauptschleife reinmachen damit die Ausgaben nicht zu schnell erfolgen.

    Sobald das Programm dann funktioniert, kannst Du die ganzen Ausgaben wieder entfernen.

    MfG,
    SlyD

    EDIT:
    PINA & 8 ist natürlich E_INT1.
    PINA & 4 ist allerdings nicht ADC1...

    Schreib das am besten immer so: PINA & ADC0, PINA & E_INT1, PINC & SCL etc. dann weiss man auch direkt welcher Pin gemeint ist.
    Diese ganzen Definitionen findest Du in der Datei RP6RobotBase.h

  7. #17
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.10.2007
    Ort
    Solingen
    Alter
    31
    Beiträge
    177
    diese includes benutze ich.



    #include "RP6ControlLib.h"
    #include "RP6I2CmasterTWI.h"
    #include "RP6Control_I2CMasterLib.h"

    sonst deklariere ich timer nicht.


    Bei dem Test kommt immer 11 heraus.
    Als ich delay_timer benutzt hab, sagte mir der Compiler: RP6Control_10_Move2.c:467: error: 'delay_timer' undeclared (first use in this function)

    MfG

    blenderkid

  8. #18
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.10.2007
    Ort
    Solingen
    Alter
    31
    Beiträge
    177
    >>Diese ganzen Definitionen findest Du in der Datei RP6RobotBase.h<<

    ich benutze aber den M32.
    also RP6ControlLib.h

  9. #19
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Ach - sorry - hab ich nicht mehr dran gedacht.

    Natürlich ist es auch dafür sinnvoll die entsprechenden Definitionen aus "RP6Control.h" zu verwenden, also z.B. PINA & ADC2 usw. - dann weiss man direkt wo was angeschlossen ist.

  10. #20
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.10.2007
    Ort
    Solingen
    Alter
    31
    Beiträge
    177
    Es wird oben von Verion 1.3 erzählt. In der Dateien aus dem Link oben:
    http://www.arexx.com/rp6/downloads/R...s_20071016.zip

    Steht immer version 1.1

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress