change pwm and i2c function for berry and zero

This commit is contained in:
Qubot 2024-01-23 12:00:14 +08:00
parent 017c9a43c2
commit faf9b24599
3 changed files with 5 additions and 111 deletions

View File

@ -9,38 +9,10 @@ unsigned char getGpioNum(void)
switch (model) switch (model)
{ {
case PI_MODEL_5B: case PI_MODEL_BERRY:
return 16;
break;
case PI_MODEL_3:
case PI_MODEL_LTIE_2:
case PI_MODEL_ZERO: case PI_MODEL_ZERO:
case PI_MODEL_ZERO_PLUS_2:
case PI_MODEL_ZERO_PLUS:
case PI_MODEL_4_LTS:
case PI_MODEL_800:
case PI_MODEL_5:
return 17;
break;
case PI_MODEL_ZERO_2:
return 21;
break;
case PI_MODEL_WIN:
case PI_MODEL_PRIME:
case PI_MODEL_PC_2:
case PI_MODEL_H3:
case PI_MODEL_RK3399:
case PI_MODEL_4:
case PI_MODEL_5_PLUS:
case PI_MODEL_900:
case PI_MODEL_CM4:
case PI_MODEL_3B:
case PI_MODEL_ZERO_2_W:
return 28; return 28;
break; break;
case PI_MODEL_R1_PLUS:
return 8;
break;
default: default:
printf ("Oops - unable to determine board type... model: %d\n", model); printf ("Oops - unable to determine board type... model: %d\n", model);
return -1; return -1;

View File

@ -20,9 +20,10 @@ static void set_pwm_info(int pin)
switch (model) switch (model)
{ {
case PI_MODEL_ZERO_2: case PI_MODEL_BERRY:
case PI_MODEL_ZERO:
if (pin != 3 && pin != 4 && pin != 21 && pin != 22) { if (pin != 2 ) {
fprintf (stderr, "the pin you choose doesn't support hardware PWM\n") ; fprintf (stderr, "the pin you choose doesn't support hardware PWM\n") ;
exit(1); exit(1);
} }
@ -33,85 +34,6 @@ static void set_pwm_info(int pin)
pwm_info_t.div_stepping = 1; pwm_info_t.div_stepping = 1;
break; break;
case PI_MODEL_ZERO_2_W:
if (pin != 2 && pin != 9 && pin != 21 && pin != 22) {
fprintf (stderr, "the pin you choose doesn't support hardware PWM\n") ;
exit(1);
}
pwm_info_t.ccr = 512;
pwm_info_t.arr = 1024;
pwm_info_t.div = 1;
pwm_info_t.div_stepping = 1;
break;
case PI_MODEL_3_PLUS:
if (pin != 2 && pin != 16) {
fprintf (stderr, "the pin you choose doesn't support hardware PWM\n") ;
exit(1);
}
pwm_info_t.ccr = 500;
pwm_info_t.arr = 1000;
pwm_info_t.div = 120;
pwm_info_t.div_stepping = 1;
break;
case PI_MODEL_5:
if (pin != 0 && pin != 2 && pin != 5 && pin != 8 && pin != 9 && pin != 10 && pin != 14 && pin != 16) {
fprintf (stderr, "the pin you choose doesn't support hardware PWM\n") ;
exit(1);
}
pwm_info_t.ccr = 500;
pwm_info_t.arr = 1000;
pwm_info_t.div = 120;
pwm_info_t.div_stepping = 2;
break;
case PI_MODEL_5B:
if (pin != 0 && pin != 2 && pin != 5 && pin != 8 && pin != 9 && pin != 10 && pin != 13 && pin != 15) {
fprintf (stderr, "the pin you choose doesn't support hardware PWM\n") ;
exit(1);
}
pwm_info_t.ccr = 500;
pwm_info_t.arr = 1000;
pwm_info_t.div = 120;
pwm_info_t.div_stepping = 2;
break;
case PI_MODEL_5_PLUS:
if (pin != 0 && pin != 1 && pin != 2 && pin != 6 && pin != 9 && pin != 10 && pin != 13 && pin != 21 && pin != 22) {
fprintf (stderr, "the pin you choose doesn't support hardware PWM\n") ;
exit(1);
}
pwm_info_t.ccr = 500;
pwm_info_t.arr = 1000;
pwm_info_t.div = 120;
pwm_info_t.div_stepping = 2;
break;
case PI_MODEL_CM4:
case PI_MODEL_3B:
if (pin != 2 && pin != 21) {
fprintf (stderr, "the pin you choose doesn't support hardware PWM\n") ;
exit(1);
}
pwm_info_t.ccr = 500;
pwm_info_t.arr = 1000;
pwm_info_t.div = 120;
pwm_info_t.div_stepping = 2;
break;
default: default:
printf("Oops - unable to determine board type..."); printf("Oops - unable to determine board type...");
exit(1); exit(1);

View File

@ -225,7 +225,7 @@ int wiringPiI2CSetup (const int devId)
piBoardId(&model); piBoardId(&model);
device = "/dev/i2c-0" ; device = "/dev/i2c-4" ;
return wiringPiI2CSetupInterface (device, devId) ; return wiringPiI2CSetupInterface (device, devId) ;
} }