tepelne cidlo - zmena teploty po zapnuti

Problémy s návrhem, konstrukcí, zapojením, realizací elektronických zařízení

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
fero_b
Příspěvky: 582
Registrován: 17 kvě 2004, 02:00
Bydliště: Kosice

#16 Příspěvek od fero_b »

Toto by mohlo pomoct:

Idle Mode: When the SM1..0 bits are written to 00, the SLEEP instruction makes the MCU enter Idle mode,stopping the CPU but allowing the UART, Analog Comparator, ADC, USI, Timer/Counters,Watchdog, and the interrupt system to continue operating. This sleep mode basically halts clk-CPU and clkFLASH, while allowing the other clocks to run.Idle mode enables the MCU to wake up from external triggered interrupts as well as internalones like the Timer Overflow and UART Transmit Complete interrupts. If wake-up from the Ana-log Comparator interrupt is not required, the Analog Comparator can be powered down bysetting the ACD bit in the Analog Comparator Control and Status Register – ACSR. This willreduce power consumption in Idle mode.

Uživatelský avatar
fero_b
Příspěvky: 582
Registrován: 17 kvě 2004, 02:00
Bydliště: Kosice

#17 Příspěvek od fero_b »

@rnbw: no hej, potreboval som to co najmensie :( dispozicne to tak vychadzalo najlepsie, ale snad ten sleep pomoze a znizit hodiny

Uživatelský avatar
Zaky
Příspěvky: 6129
Registrován: 30 říj 2010, 02:00
Bydliště: Praha

#18 Příspěvek od Zaky »

Sleep pomůže, hodiny snižovat nejspíš ani nemusíš, střída běží/neběží bude obrovská.
Krátce před tím, než se to rozbilo, tak to ještě fungovalo...

Uživatelský avatar
misocko
Příspěvky: 1250
Registrován: 26 čer 2009, 02:00
Bydliště: Hlohovec (Sk)

#19 Příspěvek od misocko »

ked som sa hral s cidlami DS18B20 , tak som hodil cidlo do mrazaku a do chladnicky. Len tak volne , na tenuckych drotikoch ktore som privrel do dveri. Prekvapilla ma teplota o 2°C viac ako by mala byt. Potom ma napadlo dat na cidlo maly "chladic" , kusok plechu asi 1cm2, teplota sa zrovnala podla toho co som nasiel na nete (klesla aj o 2 °C), cital som myslim iba raz za 2 sekundy.

Uživatelský avatar
fero_b
Příspěvky: 582
Registrován: 17 kvě 2004, 02:00
Bydliště: Kosice

#20 Příspěvek od fero_b »

hlasim ze sleep mode pomohol (zatial mam 16MHz krystal), AD chip mi ukazuje okolo 22st, co by mohlo byt real.. ale softwerovy dotaz. Kod som napisal tak, ze po resete sa precita teplota odvysiela sa na seriovu linku, aktivuje sa watchdoch a poslem CPU do sleep modu.. po 4sekundach (alebo 1s podla toho ako nastavim WD) sa sekvencia opakuje... avsak, ked pouzijem IDLE mode tak delay za odvysielanim posledneho znaku nie je nutny (vsetky byty prejdu spravne), ale ked ho poslem do POWER_DOWN, tak ked zas poslednym odvysielanym znakom nedam spomalenie 500us, tak byty neprejdu korektne (posledny byte je napriklad stale nula, alebo neprejde apod), Troska nechapem, lebo som si myslel ze za kazdym odvysielanym znakom mam while, kde sa testuje ci sa uz vysielaci bufer vyprazdnil, a teda by nemal spadnut do POWER DOWN, kym sa to neodposle na seriovu linku ale zzjavne je nieco inak :) mate nejake vysvetlenie, kde mam v kode problem, ale preco POWER DOWN zasekne vysielanie skor ako by mal? tu je kod:

int main(void)
{

sign = 0;
temperature = 0;
temperature_decimal_part = 0;
uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) ); //uart needs to enable interupts - it will be done in next function (init_interrupts)
i2c_init_sw();

sleep_disable();
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
_delay_us(200);

getTemperature();

while ( !( UCSRA & (1<<UDRE)) );
UDR = 't';
while ( !( UCSRA & (1<<UDRE)) );
UDR = sign;
while ( !( UCSRA & (1<<UDRE)) );
UDR = temperature;
while ( !( UCSRA & (1<<UDRE)) );
UDR = temperature_decimal_part;
while ( !( UCSRA & (1<<UDRE)) );


wdt_disable();
wdt_enable(WDTO_4S);
wdt_reset();
sei();

_delay_us(560);

sleep_enable();
sleep_cpu();
sleep_disable();
while(1);
return 1;
}

Uživatelský avatar
fero_b
Příspěvky: 582
Registrován: 17 kvě 2004, 02:00
Bydliště: Kosice

#21 Příspěvek od fero_b »

Neviem ci este niekto ma zapnute sledovanie tohoto vlakna:) ale napisem aj tak. Vsetko mi uz funguje, ten delay tam musel ostat, ale nevadi, cidlo ukazuje spravne. Ale pridam este nieco s cim som sa stretol (mozno to je celkom znama vec, ale ja som o tom nevedel). Na jednom tom cidle mi odrazu po nejakom nahodnom vypnuti zapnuti sa zacal MAX3232 tak hriat, ze som si skoro popalil prst, stalo sa to 2x a nie vzdy. 3232-ka potom sa nejak este spametala ale nie celkom..takze som ju vymenil, ale nasiel som na nete toto:

https://electrosome.com/solving-max232- ... g-problem/

Kondik C3 som predratoval na Vcc a to uz ide vpoho... (nestretol som sa stym este)

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#22 Příspěvek od Atlan »

To je stara vec, mas ist podla DS, su rozne kondiky aj rozne zapojenie. Uz vies teraz.

Odpovědět

Zpět na „Řešení problémů s různými konstrukcemi“