1
Generel Elektronik / Sv: hjælp til servo kontrol med timer
« Dato: Februar 13, 2012, 10:07:24 »
fandt en løsning
Denne sektion tillader dig at se alle indlæg oprettet af dette medlem. Bemærk at du kun kan se indlæg der er oprettet i områder du i øjeblikket har adgang til.
switch (eDose1)
{
case 1: lcd_puts("Bal1 CaCl2-2H2O"); break;
case 2: lcd_puts("Bal2 NaHCO3"); break;
case 3: lcd_puts("Bal3 mineralsalt"); break;
case 4: lcd_puts("Kh buffer"); break;
case 5: lcd_puts("Ca Buffer"); break;
case 6: lcd_puts("Mg buffer"); break;
case 7: lcd_puts("Sporeelement 1"); break;
case 8: lcd_puts("Sporeelement 2"); break;
case 9: lcd_puts("Sporeelement 3"); break;
case 10: lcd_puts("Aminosyre"); break;
case 11: lcd_puts("VSV"); break;
case 12: lcd_puts("Jod"); break;
case 13: lcd_puts("Strontium"); break;
case 14: lcd_puts("Phyto"); break;
case 15: lcd_puts("Zoo"); break;
case 16: lcd_puts("Diverse1"); break;
case 17: lcd_puts("Diverse2"); break;
case 18: lcd_puts("Diverse2"); break;
}
prog_char eName0[] = "";
prog_char eName1[] = "Bal1 CaCl2-2H2O";
prog_char eName2[] = "Bal2 NaHCO3";
prog_char eName3[] = "Bal3 mineralsalt";
prog_char eName4[] = "Kh buffer";
prog_char eName5[] = "Ca Buffer";
prog_char eName6[] = "Mg buffer";
prog_char eName7[] = "Sporeelement 1";
prog_char eName8[] = "Sporeelement 2";
prog_char eName9[] = "Sporeelement 3";
prog_char eName10[] = "Aminosyre";
prog_char eName11[] = "VSV";
prog_char eName12[] = "Jod";
prog_char eName13[] = "Strontium";
prog_char eName14[] = "Phyto";
prog_char eName15[] = "Zoo";
prog_char eName16[] = "Diverse1";
prog_char eName17[] = "Diverse2";
prog_char eName18[] = "Diverse3";
PROGMEM const char *eString_table[] =
{
eName0, eName1, eName2, eName3, eName4, eName5, eName6, eName7, eName8, eName9, eName10, eName11, eName12, eName13, eName14,
eName15, eName16, eName17, eName18
};
char eDose1buf[16];
char eDose2buf[16];
char eDose3buf[16];
char eDose4buf[16];
char eDose5buf[16];
char eDose6buf[16];
strcpy_P(eDose1buf, (char*)pgm_read_word(&(eString_table[dosing1num])));
lcd_puts(eDose1buf);
Men jeg er nødt til at holde en pause fra opgaverDu skal da passe på dig selv.
ISR(ADC_vect)
{
if(ADCL > 128)
{
setLED1(1);
setLED2(0);
}
else
{
setLED1(0);
setLED2(1);
}
ADCSRA |= (1 << ADSC);
}
void initADC(uint8_t aBits)
{
ADMUX = (0 << REFS1) | (0 << REFS0);
ADCSRA = (1 << ADEN) | (1 << ADIF) | (1 << ADIE) | (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
sei();
ADCSRB = (0 << ADTS2) | (0 << ADTS1) | (0 << ADTS0) | (1 << ADLAR);
ADCSRA |= (1 << ADSC);
}
Hele denne blok...gg ok
Det var egentlig forberedt på at skulle læse 2 potmetre og 2 sæt DIP-switches.ja der er rigtigt. regnede også med at der var derfor at adc prescaleren var sat til 128.
...Derudover regnede jeg med at du ville køre microcontrolleren på 8MHz