chipKIT® Development Platform

Inspired by Arduino™

probleme : Interrupt / frequence of operation / mpide-mplab

Created Tue, 03 Jul 2012 16:40:52 +0000 by oryx_r


oryx_r

Tue, 03 Jul 2012 16:40:52 +0000

[color=#400080]Français[/color]/[color=#008040]English[/color]

[color=#400080]Bonjour, J'ai acheté une PICkit Max 32 et je n'arrive pas à lui faire faire ce que je veux ! Je souhaiterai :

  • une interruption extérieur : INT0 sur le pin3 (interruption quasi régulière dans le temps)
  • une interruption timer : entre 15 et 20 MHz (50 à 60 fois plus rapide que INT0)
  • à chaque INT0 je compte le nombre d'interruption timer depuis la dernière (ce qui donne le temps entre 2 INT0.
  • je lui demande de générer une consigne décalé du INT0 (en % du temps qui sépare 2 INT0)

J'arrive à faire fonctionner les interruption extérieur et les interruption timer (vers 100kHz) dans 2 programmes séparés, mais dès que je les met ensemble, il y a des réactions bizarre et aléatoire : les interruptions ne sont plus régulières. Est ce que vous avez une idée du phénomène.

Deuxième question, je n'arrive pas à avoir des interruptions timer entre 15 et 20MHz, j'arrive à peine au MHz, j'ai lu une très bonne étude : [url]http://www.hownottoengineer.com/reviews/chipkit-road-test.html[/url]. Ils montrait les temps d'exécution des commandes en fonction de la manière de programmer. Je voulais donc laisser tomber Mpide et programmer directement avec MPLAB et PICkit 3. Mais je ne sais pas trop comment passer le pas avec le bootloader, est il facile de le remettre pour repasser sous Mpide ?

Merci d'avance pour vos conseils Oryx

PS : je cherche des solutions de préférence sous linux, mais si il y en a pas, je peux fonctionner sous Windows[/color] [color=#008040] Hello, I bought PICkit Max 32 and I can't take what I want : I wish :

  • an extern's interrupt : INT0 on pin3 (with regular time)
  • an timer's interrupt : between 15 and 20 MHz (50 to 60 times faster than INT0)
  • on INT0, I count how many timer's interrupt since the last (what gives time between 2 INT0.
  • I ask it to generate an output with delay time by INT0 (calcultate in % of the time between 2 INT0)

This 2 interruptions work in 2 differents programs, but when I put each interrupt into the same program, I have some strange reactions !! Interrupts aren't regular. Did you know what happen ?

I have second question : I can't have timer's interrupt upper than 300kHz, but I want 20MHz. I read a very interresting article : [url]http://www.hownottoengineer.com/reviews/chipkit-road-test.html[/url]. It explains that we have different delay between the same instruction (switch on/off a led). This delay depends of programmation's type : arduino's code or pic code. The pic's code is 100times upper than arduino's code !!! I think to exit mpide and work with MPLAB with PICkit 3, but I want to keep the possibility to return on mpide after. Can we reinstall the bootloader easily ?

Thanks for your help and sorry for my bad english Oryx

PS : I work on Linux, so I prefer solutions on it, but I can work on Windows.[/color]


tekken38

Wed, 15 Aug 2012 11:37:18 +0000

chipKit max32 onlt extern interrupts in PIN2 and PIN7 of IOL conector.