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

Thema: Programmieren in C. Welche Software brauche ich?

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    28.12.2007
    Ort
    Wien
    Alter
    29
    Beiträge
    96
    Anzeige

    Praxistest und DIY Projekte
    Wow danke voll super von euch alles funktioniert!!!!
    Vielen Dank

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    28.12.2007
    Ort
    Wien
    Alter
    29
    Beiträge
    96
    Code:
    #include <avr/io.h>
    
    int Time = 100000;
    
    void main ()
    {	
    	while(1)
    	{	
    		DDRC = 0xff;
    				
    		PORTC = 0x01;
    		Wait(Time);
    		PORTC = 0x02;
    		Wait(Time);
    		PORTC = 0x04;
    		Wait(Time);
    		PORTC = 0x08;
    		Wait(Time);
    		PORTC = 0x10;
    		Wait(Time);
    		PORTC = 0x20;
    		Wait(Time);
    		PORTC = 0x20;
    		Wait(Time);
    		PORTC = 0x10;
    		Wait(Time);
    		PORTC = 0x08;
    		Wait(Time);
    		PORTC = 0x04;
    		Wait(Time);
    		PORTC = 0x02;
    		Wait(Time);
    		PORTC = 0x01;
    		Wait(Time);
    	}
    	return;
    }
    
    void Wait(int waitTime)
    {
    	for(zaehler = 0;zaehler<waitTime; zaehler++)
    	{
    		
    	}
    	return;
    }
    Man, nochmals ne Frage ich als Anfänger komm echt nicht weiter dieses Programm sollte eigentlich ein Lauflicht darstellen, trotzdem zeigt es nur dauerhaft leuchtende LEDs.
    Hilfe Hilfe Hilfe
    Hat wer ne Ahnung was falsch ist????

  3. #13
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Probier es mal damit
    Code:
    #define F_CPU 1000000UL  // 1 MHz
    
    #include <util/delay.h>
    
    #include <avr/io.h>
    
    
    
    int main (void){
    DDRC = 0xff;
    
    
       while(1)
       {   
          
                
          PORTC = 0x01;
        _delay_ms(5);
    		PORTC = 0x00;
          PORTC = 0x02;
          _delay_ms(500);
    	  PORTC = 0x00;
          PORTC = 0x04;
          _delay_ms(500);
    	  PORTC = 0x00;
          PORTC = 0x08;
          _delay_ms(500);
    	  PORTC = 0x00;
          PORTC = 0x10;
          _delay_ms(500);
    	  PORTC = 0x00;
          PORTC = 0x20;
          _delay_ms(500);
    	  PORTC = 0x00;
          PORTC = 0x20;
          _delay_ms(500);
    	  PORTC = 0x00;
          PORTC = 0x10;
          _delay_ms(500);
    	  PORTC = 0x00;
          PORTC = 0x08;
          _delay_ms(500);
    	  PORTC = 0x00;
          PORTC = 0x04;
          _delay_ms(500);
    	  PORTC = 0x00;
          PORTC = 0x02;
          _delay_ms(500);
    	  PORTC = 0x00;
          PORTC = 0x01;
          _delay_ms(500);
    	  PORTC = 0x00;
       }
       return;
    }
    Das delay hat allerdings den Nachteil das der µC dort wirklich wartet. Besser wäre ein Timer.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  4. #14
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    nur als ergänzung:
    in deinem code wird wahrscheinlich die leere for-schleife vom compiler wegoptimiert. wenn du mit asm("NOP"); einen befehl (in diesem fall einen tu-nichts-befehl) in die for schleife setzt, kann sie nicht mehr wegoptimiert werden.

    es spricht aber nichts gegen Huberts code, und der vorteil ist, dass du ohne viel rechnerei zu halbwegs genau den wartezeiten kommst, du du willst.

    gruesse

  5. #15
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Ja, es reicht die Frequenz einmal zu definieren.

  6. #16
    Benutzer Stammmitglied
    Registriert seit
    28.12.2007
    Ort
    Wien
    Alter
    29
    Beiträge
    96
    Ich hab den Beitrag auf den Besserwessi geantwortet hat gelöscht, weil ich selbst draufgekommen bin . Tut mir leid!
    Das nächste Mahl werde ich ihn einfach editieren.
    Hier der Inhalt des Beitrags:

    Das #define F_CPU 1000000UL in dem Code von Hubert.G kann ich weglassen, wenn ich die Frequenz im AVR-Studio eingestellt habe, oder?

  7. #17
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Nein, kannst du nicht, diese Frequenzangabe braucht das delay um die Zeiten richtig einzustellen.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  8. #18
    Benutzer Stammmitglied
    Registriert seit
    28.12.2007
    Ort
    Wien
    Alter
    29
    Beiträge
    96
    Wie kann ich zwei Pins eines Ports ändern, aber die anderen so lassen wie sie sind?

  9. #19
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Um nur 2 Bits eine Prots zu ändern muß man den alten Wert auslesen und dann nur die Gewünschten Bits ändern: das geht z.B. so:
    portB = (portB & Maske) | (~Maske & neu)

    Dabei sind in Maske die Bits gesetzt die unverändert bleiben sollen. Auf die zweite und verknüpfung kann man eventuell verzchten wenn in neu alle Bits die bleiben sollen schon gelöscht sind.

  10. #20
    Benutzer Stammmitglied
    Registriert seit
    28.12.2007
    Ort
    Wien
    Alter
    29
    Beiträge
    96
    Könnte bitte jemand ein Beispiel reinstellen?

    edit:

    ich hab jetzt ein bsp gefunden:
    Code:
    PORTC |= (1<<PC0) | (1<<PC2); // Pins PC0 und PC2 "high"
    
    PORTC &= ~( (1<<PC0) | (1<<PC2) ); //Pins PC0 und PC2 "low"
    Aber ich verstehe nicht ganz, was die Zeichen & ~ | < machen.

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress