da
Aletox » 30 lug 2015, 20:11
Allora la questione è questa, stiamo procedendo un po' per via empirica. Comunque qualche risultato siam riusciti a portarlo a casa!
La funzione PWM risponde bene, tuttavia i campi da compilare non sono completamente chiari. Il clock sarà poi da verificarci mediante un oscilloscopio. Tuttavia anche li utilizzando la wiringPi non si trovano spiegazioni dettagliate a riguardo.
Il codice collaudato è il seguente, il primo per un semplice lamepggio LED ed il secondo come test per la funzione PWM. La funzione PWM così dichiara funziona su diverse porte,tuttavia il valore range e initial sono ancora da verificare al meglio.
Codice lampeggio LED:
- Codice: Seleziona tutto
#include <stdio.h>
#include <wiringPi.h>
#define LED 4
#define NUM_PIN 26
int main(void){
printf("Ciao\n");
wiringPiSetupGpio();
//int a;
//wiringPiSetup();
//printf("wiringPiSetup = %d\n", a);
printf("wiringsetup\n");
pinMode(LED, OUTPUT);
printf("pinMode\n");
int i = 0;
for(;;){
if(i==0) printf("For init\n");
digitalWrite(LED, HIGH);
printf("%d\n", i);
i++;
delay(500);
digitalWrite(LED, LOW);
delay(500);
}
}
Codice PWM:
- Codice: Seleziona tutto
#include <stdio.h>
#include <wiringPi.h>
#include <softPwm.h>
#define LED 18
int main(void){
printf("Ciao\n");
wiringPiSetupGpio();
printf("wiringsetup\n");
printf("PwmSetup %d\n", softPwmCreate(LED, 0, 100));
int i = 0;
while(1){
for(i;i<100;i++){
if(i==0) printf("For init\n");
softPwmWrite(LED, i);
printf("%d\n", i);
delay(10);
}
for(i;i>=0;i--){
if(i==0) printf("For init\n");
softPwmWrite(LED, i);
printf("%d\n", i);
delay(10);
}
}
}
TardoFreak due righe di codice, forse non un programma..
Se qualcuno a qualche suggerimento o miglioria è veramente ben accetta!
