Witam
Kolega poprosił mnie o skonstruowanie ustrojstwa, które, m.in., po przekroczeniu 5tys obrotów silnika w samochodzie zapali lampkę. Szczególna dokładność czy powtarzalność nie jest wymagana. Obroty dostaję w postaci 2 impulsów na obrót wału korbowego.
Wymyśliłem takie rozwiązanie:
Sprzęt: ATTiny 12 pracuje z wewnętrznym generatorem (zawsze jeden element mniej na płytce) Zasilany przez stabilizator napięcia ujemnego 79L05. Czyli masa układu jest na +7V względem masy samochodu. A to dlatego, żeby lampki sterowane +12V włączać po prostu jednym tranzystorem PNP.
Soft (napisany będzie w assemblerze): Każdy impuls wywołuje przerwanie, w którym inkrementowana jest zawartość jednego z rejestrów, nazwijmy go OBR. Na przerwaniach od timera umieszczę procedurę sprawdzającą wartość OBR, i jeśli będzie ona większa od jakiejśtam wartości to włączająca lampeczkę. Potem zerowanie OBR. Reszta funkcji, które układ ma spełniać, jest w pętli głównej.
Teraz pytanie, czy dobrze wykombinowałem i czy nie ma to jakiegoś ukrytego błędu. Zdaje mi się, że częstotliwość przerwań od timera będzie za duża, i układ nie nadąży liczyć odpowiedniej liczby impulsów. Może ugryźć sprawę z drugiej strony, i nie mierzyć częstotliwości, tylko okres - wtedy licznik inkrementowany przez timer byłby zerowany przerwaniem wywołanym przez sygnał z silnika.
I jeszcze jedno pytanie: czy w trakcie obsługi jednego przerwania wyłączać obsługę innych? Zdaje mi się, że jeśli wyłączę to mogę zgubić np zerowanie licznika, z kolei jeśli zostawię włączone to mogą się pojawić jakieś dziwne rzeczy