Some things i'm trying to understand on Kevin's Accelerometer Code

We’re trying to get our accelerometer to work here with Kevin’s Code, that part is easy, but we’re trying to understand everything on the code so that we can make the modifications we need.

We’re having a special interest on this part :

adc_result = ADRESH;
adc_result << = 8;
adc_result += ADRESL;

We’ve understood that it’s reading the High bits of the ADC and then it’ll copy it do the lower part of the adc_result variable, this part I really can’t understand. Why does he do this ?? I’ve been trying to figure out for a while now, does anyone have a clue ?


The ADC input comes in the form of a high byte and a low byte. In order to copy that over to an integer, you have to copy them separately. The first part has the ADC high byte copied over and then left shifted by 8 bits. This means that the value of the ADC high byte is in the high byte portion of the adc_result variable. Then, the ADC low byte is added in so that both values are there.


The <<= “left shift” operator moves the value toward the upper part of the variable. With that correction, you should understand the code fine now.