

Jak już pisałem na razie próbuje coś wycisnąć z softu i schemat elektryczny nie jest jeszcze do końca opracowany. Latarkę a nawet 2, muszę mieć na długi łikend majowy

Dzięki za pomiary

Dokładnie tak samo to zrobiłem z pół roku temu w swojej pierwszej wersji sterownika - http://flagiusz.republika.pl/flashlight ... oller.htmlSteff.k pisze:Do uP prąd będzie dopływał cały czas. Podczas wyłączenia latary uP będzie w trybie Power-down. Wybudzony zostanie podaniem na INT0 niskiego stanu z przycisku ( ten sam który służy do zmiany trybów).
W sumie, to nie planowaliśmy takiego jej zastosowania (była projektowania do wersji 3), ale po małej analizie wyszło, że prawie idealnie nada się do 4-ki.Steff.k pisze:Z tą samą płytka do ver 3.xx i 4.xx nieźle wykombinowałeś. Szczwane z Ciebie Bestia![]()
Zakładam, że masz czyste intencje i nie zamierzasz po prostu skopiować naszego rozwiązania, a następnie za bezcent sprzedać ludzikom z małymi żółtymi rączkamiSteff.k pisze:Jeszcze mam pytanie programistyczne
Jeśli to nie jest ściśle strzeżona tajemnica oczywiście .
Robię to wszystko na jednym timerze stosując implementacje kaskadowych liczników, na których wyliczam sobie podziały częstotliwości i czasu używane do innych celów - np. jako podstawa czasu do sterowania sekwencjami.Steff.k pisze:W attiny13 jest jeden timer/licznik/pwm. W związku z tym jak rozwiązujesz PWM i zliczanie impulsów?
To drugie - liczę odstępy czasu na cyklach timera, PWM to własna (niestandardowa) implementacja - inaczej nie uzyskałbym tak szerokiej rozpiętości i tak niskiego low`a.Steff.k pisze:1. Przy dwu/trój kliku liczysz wystąpienia INT0, a PWM'a używasz hardwarowego, czy
2. Przy dwu/trój kliku liczysz impulsy timerem, a PWM'a sam napisałeś??, czy może jeszcze inaczej.
Ano właśnie - ja też trochę żałuję, że 13-tka ma tylko jeden timer.Steff.k pisze:Aktualnie soft testuję na attiny2313 tam są 2 liczniki i nie ma problemu, ale docelowo uP w latarce to będzie attiny13, także muszę jakoś to rozwiązać.
...ja z matmy zawsze byłem słaby, hehe, zegara szachowego na stole nie mam...ale faktem jest że tyle czasu to może przy pracy dyplomowej przesiedziałem...df pisze:Myślę, że czas poświęcony na v3 można liczyć w setkach godzin na głowę - prawda Arku?
Kod: Zaznacz cały
TIMER0_OVERFLOW {
JESLI( BUTTON_ON ) { // button on
button_off_counter = 0;
button_on_counter = button_on_counter + 1;
}
JESLI( BUTTON_OFF ) { // button off
button_on_counter = 0;
button_off_counter = button_off_counter + 1;
}
TCNT0 = TIMER0_INITVAL; // (255 - 185) = 70 ticks to next overflow
}
Kod: Zaznacz cały
if(button_on_counter > 500) p_state = STATE_EXTRA_MODE;
Nie, robię to na szybkim timerze.DeeM pisze:df - jeśli dobrze rozumiem pwm'a robisz za pomocą zwykłej pętli by otrzymać dużą rozdzielczość?
Dokładnie tak to zrobiłem.DeeM pisze:Filtrowanie przycisków można zrobić za pomocą timera mierząc czasy puszczenia i wciśnięcia przycisku i uwzględniania tylko tych "przyciśnięć" które trwają odpowiednio długo - podszedłeś do tego w ten sposób?
No ja od razu piszę w asm - tak jest szybciej i dla mnie i dla procesoraDeeM pisze:Ja dziobię w C bo jestem zbyt leniwy - w większych i średnich projektach optymalne podejście jest takie że wszystko robi się w C i potem optymalizuje wybrane fragmenty kodu w asemblerze (tzw. wstawki asemblerowe) pozwala szybko stworzyć program który można potem optymalizować w asemblerze.
Baaaardzo ciekawy pomysłBiszkopt pisze:Jeszcze jeden plus sterowania mikrowyłącznikiem. Przy wykonywaniu własnego body, można zrezygnować ze switcha i gumki na nim. Jednej dziury wpuszczającej wodę mniej. Wystarczy kontaktron na płytce i magnesik neodymowy na zewnątrz, to tylko kwestia przemyślenia konstrukcji mechanicznej.