Calcul de bit de parité [C sur µprocesseur] - C - Programmation
Marsh Posté le 20-11-2010 à 21:09:20
Pour aller plus vite, on peut souvent utiliser la parité qui est calculée par le microprocesseur lui-même. C'est le cas avec les micro-processeurs Intel et AMD des PC ordinaires. Pour ce microprocesseur, la doc mentionne la parité, voir http://www.cypress.com/?docID=24689 page 3, mais je ne sais pas s'il s'agit de la même parité.
Marsh Posté le 21-11-2010 à 02:38:18
Ouaip j'avais deja été voir du coté de la doc, mais j'ai pas trouvé grand chose. Tu penses que l'API du µprocesseur pourrait avoir une fonction du genre? J'irai faire un tour dans les fichiers .h du projet (IDE : Psoc Designer) lundi quand j'aurai accès à mes fichiers.
D'ici là, si quelqu'un a un algo plus rapide que le mien, je suis preneur
Marsh Posté le 21-11-2010 à 08:49:36
Code :
|
Marsh Posté le 21-11-2010 à 14:36:13
Je suppose que tu fait u contrôleur PS2 en bitbang.
Dans ce cas tu va envoyer ta donnée bit par bit. à Chaque bit envoyé tu fait ton XOR, tu te retrouve à la fin avec ta parité.
Cela dit, vu la vitesse du PS2, ta méthode fera pas ramer ton µC à 12 MHz...
Marsh Posté le 22-11-2010 à 19:53:53
Avoir un BYTE qui s'apelle word, ça me fait mal à la tête
Sinon, si t'as de la place en rom, tu peux précalculer la table sur PC et ensuite le 'calcul' se résume à un accès mémoire.
Un peu overkill pour une parité, mais souvent utilisé pour les crc ou les fonctions trigo.
Marsh Posté le 23-11-2010 à 13:28:37
h3bus a écrit : Je suppose que tu fait u contrôleur PS2 en bitbang. |
Ouaip je bosse en bitbang (connaissais pas le terme avant merci wiki),
OK je pense que ta méthode est pas mal, j'y avais pas pensé vu que je preparais mes paquets bien avant de les envoyer. J'essaie dès que je peux...
h3bus a écrit : Cela dit, vu la vitesse du PS2, ta méthode fera pas ramer ton µC à 12 MHz... |
Mon problème enfait, c'était juste d'être sur d'avoir le temps de faire tout mes calculs entre 2 fronts d'horloge (au moment ou je suis censé envoyer mes données) mais je pense que de côté là, je suis large, nan?
Citation : The clock frequency must be in the range 10 - 16.7 kHz. This means clock must be high for 30 - 50 microseconds and low for 30 - 50 microseconds.. If you're designing a keyboard, mouse, or host emulator, you should modify/sample the Data line in the middle of each cell. I.e. 15 - 25 microseconds after the appropriate clock transition |
SquiZZ a écrit : Avoir un BYTE qui s'apelle word, ça me fait mal à la tête |
Ouais, peu après avoir posté, je suis tombé sur cette page http://graphics.stanford.edu/~seander/bithacks.html qui en donnait un exemple (Compute parity by lookup table), mais ca me paraissait un peu lourd pour calculer la parité d'un un mot de 8bits.
Marsh Posté le 20-11-2010 à 19:02:57
Salut les gens
Voila une petite question toute simple, je dois réaliser un algo permettant de calculer un bit de parité d'un mot de 8bit.
En fait c'est un projet scolaire, je code un driver pour piloter un Touchpad PS/2.
Bon, le code à l'air de marcher, mais j'ai codé ca à la va vite, et vu que je suis allé limite niveau temps exécution
(mon µcontrolleur est cadencé à 12Mhz - CY8C21234 de Cypress), je voulais savoir si mon code était rapide ou
mal pensé vu que je dois faire pas mal de truc entre deux coups d'horloge.
Voila mon code de test (je viens de tester sur mon ordi perso, ca à l'air de marcher):
Merci d'avance
---------------
Au royaume des aveugles, les borgnes sont rois xo0