Hiho,
habe da ein kleines Problem. Wenn ich mir eine Schleife baue und mit 
einer mit einer Hex gefütterten Variable etwas an einen Sensor schicken 
mag, dann ist das Bitmuster verkehrt, ich muß die Variable quasi von 
hinten auslesen, aber wie?!
- MicroC
- Atmega16
So sollte es gehen - tut es aber nicht:
| 1 |    WTR_hex = 0xD5;
 | 
| 2 |    
 | 
| 3 |    for(i=0;i<8;i++)
 | 
| 4 |    {
 | 
| 5 |      SCL = 0;                                           
 | 
| 6 |      if((WTR_hex >> i) & 1)  DIN = 1; else DIN = 0;     
 | 
| 7 |      SCL = 1;                                          
 | 
| 8 |    }
 | 
So funktioniert es aber:
| 1 |    for(i=8;i>0;i--)
 | 
| 2 |    {
 | 
| 3 |      SCL = 0;                                            
 | 
| 4 |      if((WTR_hex >> (i-1)) & 1)  DIN = 1; else DIN = 0;      
 | 
| 5 |      SCL = 1;                                            
 | 
| 6 |    }
 | 
Nun kann ich ihn ja problemlos so beschreiben, ist umständlich aber 
funktionert, jedoch ist nun mein Problem: Wierum lese ich nun meine 
Daten aus diesem Sensor wieder richtigrum ein damit ich damit rechnen 
kann?!
| 1 |   for(i=0;i<16;i++)
 | 
| 2 |   {
 | 
| 3 |      SCL = 1;  asm nop;
 | 
| 4 |      if(DOT == 1) Word1 |= ((unsigned long)1 << i);
 | 
| 5 |      SCL = 0;  asm nop;
 | 
| 6 |   }
 | 
oder so:
| 1 |   for(i=16;i>0;i--)
 | 
| 2 |   {
 | 
| 3 |      SCL = 1;  asm nop;
 | 
| 4 |      if(DOT == 1) Word1 |= ((unsigned long)1 << (i-1));
 | 
| 5 |      SCL = 0;  asm nop;
 | 
| 6 |   }
 | 
Da es sich dort um 16Bit kalibrationsdaten handelt kann ich nicht genau 
sagen in welchen Bereich diese liegen müssen?!