Skip to content

ATmega328PB #78

Open
Open
@KHeintz

Description

@KHeintz

For the AVR I added the ATmega328PB. It has 3 16bit timers. Could address 22 servos. But I limited it to 20 servos, because I only need 20 servos . At TimerServos.h add I the 328PB

#elif defined(__AVR_ATmega328PB__) || defined(__AVR_ATmega128__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega2561__)
#define _useTimer3
#define _useTimer1
typedef enum { _timer3, _timer1, _Nbr_16timers } timer16_Sequence_t;

In servo.h define I the Atmega328PB with 10 servos on one timer.

#if defined(__AVR_ATmega328PB__)
#define SERVOS_PER_TIMER       10     // the maximum number 10 of servos controlled by one timer at the ATmega328PB
#else
#define SERVOS_PER_TIMER       12	 // the maximum number 12 of servos controlled by one timer
#endif

More than 11 servos on a timer makes no sense and everyone should ask themselves how many servos can be accommodated on a timer maximum because of the frame rate. 11 servos means already in the worst case 22ms or more frame rate or 45 Hz or less repetition rate.

Metadata

Metadata

Assignees

No one assigned

    Labels

    topic: codeRelated to content of the project itselftype: enhancementProposed improvement

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions