- LiFePO4 Speicher Test         
Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 45

Thema: Mein erster Code auf dem Mega 32: Lauflicht

  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    70
    Beiträge
    622
    Anzeige

    E-Bike
    Hallo,

    ="BlackDevil.... Er läuft auch ohne delay schön langsam (warum auch immer).
    Die tatsächliche Geschwindigkeit kannst Du nur aus dem Simulator-Fenster, wo Takte bzw. Zeit angegeben sind, ablesen. Äußerlich läuft der Simulator immer wesentlich langsamer als der Prozessor mit der angegebenen Taktrate! Um das echte Timing zu sehen, musst Du Dir die Anzahl der Takte (Cycle Counter) oder die Zeit (Stop Watch) im Simulator ansehen.

    Zwei Fragen noch: Wie kann ich den wert eines Pins an eine Variable überegeben? mit uint8_t VAR = PINAX oder?
    Eher mit
    Code:
    uint8_t VAR;
    VAR=PINA&PINAx;  // VAR=PINA; liest den ganzen Port
    ...ist der ATmega 32 mit 16MHz angegeben, läuft in der Simulation aber nur mit 8MHz?
    Dann stimmen Deine eingestellten Parameter noch nicht!

    Gruß

    Fred
    Only entropy comes easy. - Anton Checkhov

  2. #12
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.01.2008
    Beiträge
    164
    ....Warum zur Hölle ist der ATmega 32 mit 16MHz angegeben, läuft in der Simulation aber nur mit 8MHz? ......


    irgendwie hast du dich überhaupt noch nicht mit dem avrstudio beschäftigt.
    deine einstellung vom AVR hat nichts mit der einstellung vom avrstudio zu tun.

    weiterhin läuft der simulator nicht in echtzeit sondern simuliert.
    die zeit für einen befehl usw kannst du dann herauslesen.
    auch das portsetzen entspricht nicht der c-schreibweise .
    les dir dieses mal genau durch und mach erst dann wieder weiter.
    dein code ist zur zeit in der schreibweise chaotisch :

    http://www.mikrocontroller.net/artic...R-GCC-Tutorial

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Beiträge
    1.614
    Zitat Zitat von sechsrad
    dein code ist zur zeit in der schreibweise chaotisch :

    http://www.mikrocontroller.net/artic...R-GCC-Tutorial
    Mit dem Tutorial setze ich mich zZt auseinander Das es vielleicht etwas Chaotisch aussieht mag daran liegen das ich immer wieder daran rumpfusche und weniger darauf achte das es nicht nach "Quick'n'Dirty" ausschaut. Habe auf C++ gelernt und C is vom Code her etwas anders - das is ne kleine Umstellung im moment.

    Zitat Zitat von fhs
    Hallo,

    Die tatsächliche Geschwindigkeit kannst Du nur aus dem Simulator-Fenster, wo Takte bzw. Zeit angegeben sind, ablesen. Äußerlich läuft der Simulator immer wesentlich langsamer als der Prozessor mit der angegebenen Taktrate! Um das echte Timing zu sehen, musst Du Dir die Anzahl der Takte (Cycle Counter) oder die Zeit (Stop Watch) im Simulator ansehen.
    Danke

    Zwei Fragen noch: Wie kann ich den wert eines Pins an eine Variable überegeben? mit uint8_t VAR = PINAX oder?
    Eher mit
    Code:
    uint8_t VAR;
    VAR=PINA&PINAx;  // VAR=PINA; liest den ganzen Port
    Danke

    ...ist der ATmega 32 mit 16MHz angegeben, läuft in der Simulation aber nur mit 8MHz?
    Dann stimmen Deine eingestellten Parameter noch nicht!

    Gruß

    Fred
    Ich habe in der Project Config sowie in der Simulator Config 16MHz eingestellt und bekomme als Warnung das die Takrate für den angegebenen Prozessor zu hoch ist und er tut - richtig - nichts...

  4. #14
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    70
    Beiträge
    622
    Hallo,

    Ich habe in der Project Config sowie in der Simulator Config 16MHz eingestellt und bekomme als Warnung das die Takrate für den angegebenen Prozessor zu hoch ist und er tut - richtig - nichts...
    Kein Ahnung, was die Ursache sein könnte. Bei mir geht es (siehe Anlage). Du hast nicht zufälling den Atmega32L spezifiziert (kommt bei mir im Drop-Down-Menü übrigens nicht vor)?

    Viele Grüße

    Fred
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken atmega32_16mhz.png  
    Only entropy comes easy. - Anton Checkhov

  5. #15
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Beiträge
    1.614
    Ne schon den Mega32 - ich schmeis nach dem Essen mal den Laptop an und teste noch mal ... (sowieso, der code ist noch ziemlich Dämlich ... zB müssen die Taster gedrückt bleiben das der Spaß funzt )

  6. #16
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Beiträge
    1.614
    Here I am again

    Die 16MHz habe ich eingestellt bekommen, allerdings etwas Kurios...
    Hier
    Bild hier  
    Sind 16MHz eingestellt, wobei hier
    Bild hier  
    8MHz eingestellt sind - das Prozessor Fenster sagt 16MHz und es läuft auch doppelt so schnell wie mit 8MHz ...
    Code:
    		  		PORTB <<= 1;
        		if (!PORTB){
            		PORTB = 1;
    			}
    PORTB<<=1 shiftet (<<) die 1 durch den ganzen Port, aber warum bei jedem Zyklus das nächse? Und was genau macht die IF Anweisung?
    Da steig ich - auch mit dem tutorial - noch nicht ganz durch.

    Code:
    	uint8_t run=PINA&PINA0;
    if(run==1){ // tu was }
    Tut nicht- Erklärung? Vielleicht liegts am Code ... C/C++ hat dann doch ein zwei verschiedenheiten..


    Code:
    #include <avr/io.h>
    #include <stdint.h>
    #include <util/delay.h> 
    
    
    
    int main (void) {
    
    	DDRB  = 0xff;
    	DDRA  = 0x00;
    	uint8_t run=PINA&PINA0;
    	char auswahl='n';
    
    while(1) { // MAINSCHLEIFE
    	if((PINA&(1<<PINA0))&&(auswahl=='n')){ auswahl='r';}
    	else if((PINA&(1<<PINA0))&&(auswahl=='r')){ auswahl='n'; }
    	else if((PINA&(1<<PINA0))&&(auswahl=='b')){ auswahl='c'; }
    	else if((PINA&(1<<PINA0))&&(auswahl=='c')){ auswahl='b'; }
    	else if((PINA&(1<<PINA1))&&(auswahl=='r')){ auswahl='b'; }
    	else if((PINA&(1<<PINA1))&&(auswahl=='b')){ auswahl='r'; }
    		switch(auswahl){
    		case 'r': // VORWÄRTS FWD
    		  		PORTB <<= 1;
        		if (!PORTB){
            		PORTB = 1;
    			}
    			break;
    		case 'b' :  // RÜCKWÄRTS RWD
    			PORTB >>= 1;
    			if(!PORTB){
    				PORTB=128;
    			}
    			break;
    		}
    } // MAINSCHLEIFEN ENDE
     
    
       return 0; 
    }
    Das tut soweit alles was ich will, auser der Variablen zuweisung.

    Was ist daran C Untypisch? Es ist mit der Version vll ungemütlich geschrieben, Funktioniert aber tadellos

  7. #17
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    70
    Beiträge
    622
    Hallo,

    Zitat Zitat von BlackDevil
    uint8_t run=PINA&PINA0;
    Du meinst
    <pre> uint8_t run=PINA&(1<<PINA0);</pre>

    Tut mir leid, wenn mein obiges Posting diesbezüglich missverständlich war; Ursache ist, dass ich die "alten" Termini PAx usw. verwende.

    Gruß

    Fred
    Only entropy comes easy. - Anton Checkhov

  8. #18
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Beiträge
    1.614
    Zitat Zitat von fhs
    Eher mit
    Code:
    uint8_t VAR;
    VAR=PINA&PINAx;  // VAR=PINA; liest den ganzen Port
    Ich hatte mich daran Orientiert - deine Variante hatte ich schon mal getestet, tut aber nich
    Code:
    if((run==1)&&(auswahl=='n')){ auswahl='r';}
    Kann aber auch an einer Falschen einbindung liegen. Gibts noch eine Erklärung dazu wie nun der Port durchgeshiftet wird um zu Prüfen ob ein Pin1 ist oder die Register zu setzen?

    Woher bekomme ich die lcd.h? Ich hab gegooglet wie ein Ochse, ohne erfolg...

  9. #19
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    70
    Beiträge
    622
    Hi,

    ...siehe mein Posting von 21:24!

    Gruß

    Fred
    Only entropy comes easy. - Anton Checkhov

  10. #20
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Beiträge
    1.614
    Okay danke, damit bleibt der rest aber noch offen.

Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test