
Godnatt
Varför kör du delay(1000 - new_delay)? Vad är den raden bra för?Al_Bundy skrev:Jag testade mig fram!
Jag har gjort en kod en är ungefär som jag hade räknat med. Felvärde desto längre tid går mot oändligheten. Ca +-5 sekunder fel på en minut. Så en uC jobbar inte konstant tid trots evighetsloop?
Men jag kan inget göra mera. Vet inte hur jag ska räkna ut tiden det tar för att köra en funktion.Kod: Markera allt
... StartTime = millis(); // start the clock in milliseconds delay(100); // the sensor delay EndTime = millis(); new_delay = EndTime - StartTime; delay(1000 - new_delay); // <------ ???????????????????????? Vad gör denna rad ???????????????? Serial.println(1000 - new_delay); ....
Kod: Markera allt
unsigned long StartTime;
unsigned long TotalFunctionTime;
unsigned long EndTime;
void setup()
{
Serial.begin(9600);
}
void loop()
{
StartTime = millis(); // starttid
delay(100); // <--- Funktionen vi tar tid på
EndTime = millis(); // sluttid
TotalFunctionTime = EndTime - StartTime; // Räkna ut tiden funktionen tagit. Total tid = sluttid - starttid
Serial.println(TotalFunctionTime);
}
Nej.Al_Bundy skrev:Kanske en 555 timer ?
sodjan skrev: En "gräj" med AVR är dock att, om man har ställt om processorn till
extern kristall (via "fuses"), så måste man också ha en kristall för
att kunna programmera om processorn via ISP igen. D.v.s för att t.ex
kunna ändra tillbaka den "fuse" som anger att kristall ska användas.
atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock)
atmega328bb.upload.protocol=stk500
atmega328bb.upload.maximum_size=30720
atmega328bb.upload.speed=57600
atmega328bb.bootloader.low_fuses=0xE2
atmega328bb.bootloader.high_fuses=0xDA
atmega328bb.bootloader.extended_fuses=0x05
atmega328bb.bootloader.path=arduino:atmega
atmega328bb.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
atmega328bb.bootloader.unlock_bits=0x3F
atmega328bb.bootloader.lock_bits=0x0F
atmega328bb.build.mcu=atmega328p
atmega328bb.build.f_cpu=8000000L
atmega328bb.build.core=arduino:arduino
atmega328bb.build.variant=arduino:standard
atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock)
atmega328bb.upload.protocol=stk500
atmega328bb.upload.maximum_size=30720
atmega328bb.upload.speed=57600
atmega328bb.build.mcu=atmega328p
atmega328bb.build.f_cpu=8000000L
atmega328bb.build.core=arduino:arduino
atmega328bb.build.variant=arduino:standard