Håller på och samplar en signal i differential mode på AD0 och AD1 då den svänger runt nollan och jag vill ha med tecknet.
Problemet är att från AD:n får jag ett 10-bitars signed värde och det ska jag lagra i en signed 16-bitars integer så jag måste flytta tecknet.
Trodde att det bara var att göra på följande sätt:
Kod: Markera allt
s16 buffert[250];
Kod: Markera allt
buffert[samplecounter] = a2dConvert10bit(ADC_CH_1_0_DIFF10X);
// Check if sign bit is set
if((buffert[samplecounter] & 0b0000001000000000)==0b0000001000000000)
{ // move the sign to the 16th bit instead of the 10th
buffert[samplecounter] &=~0b0000001000000000;
buffert[samplecounter] |=0b1000000000000000;
}

Vore tacksam för lite hjälp.