DMA et Shift left

DMA et Shift left - C - Programmation

Marsh Posté le 30-06-2010 à 13:08:31    

Bonjour a tous.
 
J aurais une petite question sur le "shift left" et le DMA sur un microprocesseur ATMEL.
 
Voila je voudrais utiliser un DMA sur mon buffer( 64bytes)  que j ai nomme ici Sendbuffer  
 
J ai trouve ca sur la note application

//DMA souce adresse ici
DMAchannel->SRCADDR0 = (( (uint16_t) sendbuffer) >> 0*8 ) & 0xFF;
DMAchannel->SRCADDR1 = (( (uint16_t) sendbuffer) >> 1*8 ) & 0xFF;
DMAchannel->SRCADDR2 = 0


 
mais je n ai pas trop bien compris le >> 0*8 ) & 0xFF et le >> 1*8 ) & 0xFF
Pourquoi aussi 0 pour SRCADDR2?
 
Merci.

Message cité 1 fois
Message édité par ziedchen le 30-06-2010 à 13:09:03
Reply

Marsh Posté le 30-06-2010 à 13:08:31   

Reply

Marsh Posté le 30-06-2010 à 13:19:06    

ziedchen a écrit :

Bonjour a tous.
 
J aurais une petite question sur le "shift left" et le DMA sur un microprocesseur ATMEL.
 
Voila je voudrais utiliser un DMA sur mon buffer( 64bytes)  que j ai nomme ici Sendbuffer  
 
J ai trouve ca sur la note application

//DMA souce adresse ici
DMAchannel->SRCADDR0 = (( (uint16_t) sendbuffer) >> 0*8 ) & 0xFF;
DMAchannel->SRCADDR1 = (( (uint16_t) sendbuffer) >> 1*8 ) & 0xFF;
DMAchannel->SRCADDR2 = 0


 
mais je n ai pas trop bien compris le >> 0*8 ) & 0xFF et le >> 1*8 ) & 0xFF
Pourquoi aussi 0 pour SRCADDR2?
 
Merci.


 
Ce code met l'octet de poids faible de sendbuffer dans DMAchannel->SRCADDR0 et l'octet de poids fort dans DMAchannel->SRCADDR1.
 
L'utilisation de 0*8 et 1*8 est juste pour faciliter la lecture...


---------------
sheep++
Reply

Marsh Posté le 30-06-2010 à 14:30:01    

Merci beaucoup, je comprends un peu mieux ^^

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed