Hallo Forum,

auf Grund einer Nachfrage von meiner Webseite habe ich mal ein kleines C-Programm entwickelt um die GPIOs per Konsolenaufruf zu schalten.
Ich wollte dann noch zusätzlich eine PWM mit ins das Programm reinbasteln nur da bin ich nicht sicher ob das mit der Methode die ich aktuell verwende überhaupt machbar ist. Vielleicht kann mir ja jemand eine Antwort darauf geben

Hier ist schon mal das Programm für alle die die es gerne mal ausprobieren wollen

Code:
// Compile with: GCC /var/Programme/UART.c -o /var/Programme/UART
 
#include <sys/types.h>                        
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <time.h>


int fd;


char GPIO[3][30] = {"/sys/class/gpio/gpio0/value", 															// Array für die GPIOs
					"/sys/class/gpio/gpio1/value", 
					"/sys/class/gpio/gpio4/value"}; 


int main(int argc, char** argv)               																// Programmstart
{
	int res;
	int i;


	printf("Anzahl Argumente: %d \n", argc); 																// Ausgabe der Anzahl der übergebenen Argumente
	
	for(i = 0; i < argc; i++)																				// Argumente ausgeben
		{
			printf("argv[%d] = %s\n", i, argv[i]);
		}
		
	if (argc >= 1)    																						// Sind Argumente übergeben worden?                                                 
	{
		for(i = 1; i < argc; i++)
		{
			fd = open(GPIO[i-1], O_WRONLY | O_NOCTTY);														// Datei mit der Indexnummer "i-1" öffnen und Name unter "fd" speichern
			res = write(fd, argv[i], 1);																	// Argument mit der Nummer "i" in die geöffnete Datei schreiben
			close (fd);																						// Datei schließen
		}
	}
	return 0;
}
Der Aufruf in der Konsole erfolgt dann so:

./Programmname Bit1 Bit2 Bit3

Sprich bei mir sieht es im Moment so aus:

./GPIO 1 0 1

Sinn und Zweck ist die Ansteuerung einer RGB LED.
Deswegen auch die PWM