Ligne 80 : |
Ligne 80 : |
| | | |
| == Créer un compteur de microsecondes == | | == Créer un compteur de microsecondes == |
− | Vous pouvez utiliser un ''timer'' pour créer un compteur de microsecondes, ce qui peut s'avérer très pratique lorsque vous réalisez quelque-chose qui nécessite un chronométrage préçis. Nous allons utiliser le timer We will use timer 2 for this, since timer 2 has a 32-bit counter (so does timer 5, but if you use timer 5 then you can’t use the Servo driver at the same time). | + | Vous pouvez utiliser un ''timer'' pour créer un compteur de microsecondes, ce qui peut s'avérer très pratique lorsque vous réalisez quelque-chose qui nécessite un chronométrage préçis. Nous allons utiliser le ''timer'' 2 pour cela étant donné qu'il dispose d'un compteur 32-bit (comme c'est aussi le cas pour le ''timer'' 5, mais si vous utilisez le ''timer'' 5 alors vous ne pourrez pas piloter de Servo moteur en même temps). |
| | | |
− | We set up timer 2 as follows:
| + | Nous assignons le ''timer'' 2 comme suit: |
| | | |
| <nowiki>>>> micros = pyb.Timer(2, prescaler=83, period=0x3fffffff)</nowiki> | | <nowiki>>>> micros = pyb.Timer(2, prescaler=83, period=0x3fffffff)</nowiki> |
| | | |
− | The prescaler is set at 83, which makes this timer count at 1 MHz. This is because the CPU clock, running at 168 MHz, is divided by 2 and then by prescaler+1, giving a freqency of 168 MHz/2/(83+1)=1 MHz for timer 2. The period is set to a large number so that the timer can count up to a large number before wrapping back around to zero. In this case it will take about 17 minutes before it cycles back to zero.
| + | Le ''prescaler'' est configuré sur 83, which makes this timer count at 1 MHz. This is because the CPU clock, running at 168 MHz, is divided by 2 and then by prescaler+1, giving a freqency of 168 MHz/2/(83+1)=1 MHz for timer 2. The period is set to a large number so that the timer can count up to a large number before wrapping back around to zero. In this case it will take about 17 minutes before it cycles back to zero. |
| | | |
| To use this timer, it’s best to first reset it to 0: | | To use this timer, it’s best to first reset it to 0: |