- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 31

Thema: Minimallösung: Servo-Sensor

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Zur RP6-Jukebox:

    Meist verlinke ich den endsprechenden Thread bei meinen Filmchen:
    https://www.roboternetz.de/phpBB2/vi...=339495#339495

    Der Zugriff auf's Flash ist nicht so einfach, denn nur aus dem Loaderbereich heraus kann man darauf schreibend zugreifen. Die einzige Chance dafür wär wohl eine Funktion im Loader mit der man indirekt was ins Flash schreibt.

    Mein aktueller Ansatz: Der RP6 sampled die Daten und sendet sie zum Terminal. Per Copy&Paste erzeugt man daraus ein Daten[]-Array und included es im Programm:

    Code:
    // RP6 als Tonband mit Aufnehmen und Abspielen (Daten im Flash)     1.1.2008 mic
    
    #include "rblib.h"								// bindet u.a io.h und stdlib.h ein
    #include "rblib.c"								// und dient vorrangig dem Debuggen
    #define speichergroesse 2048					// Anzahl der einzulesenden Bytes
    
    int main(void)
    {
    uint8_t daten[]="";
    uint8_t temp, bit_nr;							// Speicherplatz bereitstellen
    uint16_t byte_nr, i, dummy;					// und ein paar Hilfsvariablen
    
    	rblib_init();									// ein paar Initialisierungen
    	setMotorPWM(0,0);								// PWM0= sterrt den PWM-Interrupt
    	PORTA &= ~(1 << PINA4);						// PINA4 liest die Daten ein
    	DDRA &= ~(1 << PINA4);						// PullUp PINA4 aus
    	DDRC |= (1 << PINC0);						// an PINC4 hängt der Speaker
    	byte_nr=speichergroesse;					// Zähler für die Bytes
    	daten[0]=daten[0];
    
    	while(0)											// Zum Einstellen des Pegels
    	{													// wird nicht verwendet
    		if (PINA & (1 << PINA4))
    		{
    		   setLEDs(1);
    			PORTC |= (1 << PINC0);
    			writeInteger(255,16);
    		}
    		else
    		{
    		   setLEDs(0);
    			PORTC &= ~(1 << PINC0);
    			writeInteger(0,16);
    		}
    		if (!temp--) writeString("\n\r");
    	}                                      // Ende Testschleife
    
    	writeString("\n\rStart\n\r");
    	cli();                                 // Keine Störung zulassen, wir lesen ein
    	do                                     // Schleife der Datenbytes
    	{
    		temp=0;
    		bit_nr=8;                           // acht Bit einlesen
    		do                                  // Schleife der Bits
    		{
    			if (PINA & (1 << PINA4))         // Pegel als High erkannt?
    			{
    				setLEDs(1);                   // Ja, LED an
    				PORTC |= (1 << PINC0);        // Speaker an
    				temp += 1;       					// und Bit0 im Datenbyte setzen
    			}
    			else
    			{
    				setLEDs(0);                   // Nein, LED aus
    				PORTC &= ~(1 << PINC0);       // Speaker aus
    				temp += 0;       					// für's Timing Bit0 nicht setzen
    			}
    			if (--bit_nr)							// alle Bits komplett?
    			{
    				temp *= 2;          				// Speicherbyte nach links shiften
    				//for(i=0;i<100;i++) dummy+=i;  // kurze Verzögerung (8MHz!)
    				if (byte_nr % 32)
    				{
    					if (bit_nr == 6) writeString(",");
    					if (bit_nr == 4) writeString("&");
    					if (bit_nr == 2) writeString("H");
    				}
    				else
    				{
    					if (bit_nr == 6) writeString(",\\");
    					if (bit_nr == 4) writeString("\n");
    					if (bit_nr == 2) writeString("&H");
    				}
    			}
    			else
    			{
    				writeInteger(temp,16);        // Fertig, Byte als Hex senden
    			}
    		}
    		while(bit_nr);                    	// Wenn nötig, nächstes Bit einlesen
    	}
    	while(--byte_nr);    // nächstes Byte bis Speicher voll
    	sei();                                 // eigentlich nicht nötig
    	writeString("\n\rFertig\n\r");
    	
    	return(0);                             // das war's. Einfach und blechern
    }
    Gruß

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

Berechtigungen

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

Solar Speicher und Akkus Tests