- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 2 von 2

Thema: Hilfe zu ATmega32 - I²C - RN-Motorctrl

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    15.11.2006
    Beiträge
    13

    Hilfe zu ATmega32 - I²C - RN-Motorctrl

    Anzeige

    Powerstation Test
    Hi Leute,

    ich hätte da gerne mal ein Problem: [-o<

    was ich habe: Ich habe es hingekriegt, einen Getriebemotor über eine Kombination aus RN-Motorcontrol/RN-Dualmotor über die serielle Schnittstelle vom PC mit dem vom Robotikshop downloadbaren Programm "RN-Motorcontrol" zu steuern - funktioniert - so weit keine große Kunst.

    was ich in Zukunft möchte: Ich möchte die Steuerung nicht vom PC, sondern von einem Atmega32 übernehmen lassen, wobei ich die serielle Schnittstelle des AVR weiterhin für die Kommunikation mit dem PC frei halten möchte.

    Soll heißen, ich möchte für die Kommunikation zwischen AVR und RN-Motorcontrol die I²C/TWI-Schnittstelle verwenden. Ich habe jetzt schon stundenlang in Foren rumgesucht und mir schwirrt der Schädel.

    Soll ich die Lib von Peter Fleury oder die TWI.h verwenden?
    Wie sende ich ein einzelnes Byte vom AVR (Master) an RN-Motorcontrol (Slave)? und und und...?

    Was mir sehr weiterhelfen würde, wäre ein Programmbeispiel in C von jemandem, der das schon mal gemacht hat - in dieser Kombination.

    Falls diese Frage schon mal gestellt wurde, würde vielleicht auch ein Link dahin reichen.

    Grüße
    Ralf

    PS: Ich bin noch Neuling in AVR´s , also bitte die Antworten meinem Niveau anpassen

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    15.11.2006
    Beiträge
    13
    OkOk,

    keine Resonanz.. Hmmmmm.

    Dann könnte vielleicht mal jemand auf dieses Programm schauen, bzw. warum das nicht funktioniert:

    Code:
    #include <avr/io.h>
    #include "i2cmaster.h"
    #include "twimaster.c"
    
    
    
    #define RNMotor   0x58      // Adresse von RNMotorcontrol
    
    
    void main(void)
    {
      unsigned int i;
      unsigned char ret;
      unsigned char val[6]={0x23,0x23,0x03,0x02,0x01,0x96}; //
      
      
    
      
      i2c_init();                                // I2C Interface initialisieren
     
    
    
      while(1)
      {        
        for(i=0;i<6;i++)
    	{
    		ret = i2c_start(RNMotor+I2C_WRITE);       // Addresse und Schreibmodus aktivieren
        	if ( ret )
        	{
          		// Versuch, die Startbedingungen zu setzen gescheitert, z.B. wenn das Board 
    			// nicht gefunden wurde
    			i2c_stop();
    	    }
        	else
        	{
          		// Versuch, die Startbedingungen zu setzen erfolgreich 
    			i2c_write(val[i]);                       // Daten schreiben
          		i2c_stop();                           // Bus wieder freigeben
     		}
    	}
    
      }
    
    }
    Das Programm wird einwandfrei compiliert, gelinkt. Nach dem Übertragen auf den AVR tut sich jedoch nichts. Eigentlich müsste sich Motor1 drehen.

    Für nen kleinen Stups in die richtige Richtung wäre ich ganz dankbar.

    Grüße
    Ralf

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress