Malutki, zasilany z jednej bateryjki CR1220 odbiornik kodu RC5 dekodowany za pomocą AVR ATTiny10. Układ steruje dwiema diodami w trybie włącz/wyłącz. W celu uniknięcia niezamierzonych zmian stanów na wyjściach, odczytywany jest bit Toggle z ramki RC5.
Inspiracja: http://www.youtube.com/watch?v=ghtCYlqUlWQ
Wiedza: http://mikrokontrolery.blogspot.com/2011/03/IR-podczerwien-transmisja-standard-pilot-kurs.html
Wsparcie:http://www.elektroda.pl/rtvforum/viewtopic.php?t=2651455&highlight=
Kody źródłowe C Atmel Studio 6.1
Kategoria: Zainteresowania
Moje pasje, to czym lubię się zajmować.
Porównanie Atmega8 Atmega8A Atmega88 Atmega88PA
Aby nie kupować dinozaurów. Dane, które ciężko znaleźć w takiej formie.
Atmega8 | Atmega8A | Atmega88 | Atmega88PA |
---|---|---|---|
4,5-5,5V | 2,7-5,5V | 2,7-5,5V | 1,8-5,5V |
0-16MHz | 0-16MHz | 0-10MHz; 0-20MHz@4,5-5,5V | 0-20MHz |
3xPWM | 3xPWM | 6xPWM | 6xPWM |
5 sleep modes | 5 sleep modes | 5 sleep modes | 6 sleep modes |
– | – | PCINT | PCINT |
– | – | – | Sensor temperatury |
Active: 3,6mA | Active: 3,6mA | Active: 250uA@1MHz | Active: 0,2mA(200uA) |
Idle: 1,0mA | Idle: 1,0mA | ||
PowerDown: 0,5uA | PowerDown: 0,5uA | PowerDown: 0,1uA | PowerDown: 0,1uA |
Qtouch support | Qtouch support | ||
– | – | UART in SPI mode | UART in SPI mode |
Vref 2,56V | 2,56V | 1,1V | 1,1V |
3,44zł TQFP32 | 3,98zł TQFP32 | 6,52zł TQFP32 | 5,40zł TQFP32 |
Proszę o pomoc w rozbudowie tabelki.
Ustawianie i zmiana częstotliwości taktowania mikrokontrolera w trakcie jego działania
Detektor promieniowania – prototyp
Konstruuję aktualnie licznik Geigera. Udało mi się nabyć na aukcji tubę STS-5 (CTC-5) która służy za detektor promieniowania (głównie beta). Tuba tak wymaga zasilania stałym napięciem ok. 400V, jednak pobiera bardzo mało prądu, i to tylko podczas detekcji. Złożyłem więc prototyp, który o wykryciu cząstki informuje charakterystycznym trzaskiem i mignięciem diodą LED.
W docelowej konstrukcji znajdzie się któraś Atmega (8 lub 88), wyświetlacz LCD 16×2 i wykonana płytka drukowana. Jako obudowę planuję użyć CP-Z-97/B.
Dodam jeszcze, że w projekcie przetwornicy bardzo pomógł mi użytkownik portalu Elektroda.pl psooya.
Neverhood na Windows 8.1
Ekran logowania i układ klawiatury
Jeśli na ekranie logowania masz jako domyślny układ klawiatury inny niż preferowany, ta instrukcja jest dla Ciebie. Zaloguj się, wejdź w panel sterowania -> W kategorii „Zegar, język i region” wybierz „Zmień układ klawiatury lub inne metody wprowadzania danych”. W oknie wybierz zakładkę „Administracyjne:
Wybierz „Kopiuj ustawienia”:
W otwartym oknie zaznacz oba checkboxy. Pozatwierdzaj wszystkie okna i gotowe. Pamiętaj, że zwykle prawidłowy układ klawiatury to „Polski (programisty)”.
Putty – zawieszony terminal przy połączeniu SSH
Grep – przydatne komendy
- Wyszukiwanie wszystkich plików w folderze zawierających tekst. Wyszukiwanie w określonych typach plików:
grep -rl --include="*.php" 'tekst' folder/
- Wyszukiwanie tekstu w pliku z prezentacją linii:
grep -nr 'tekst' plik.php
- Masowa zamiana tekstu we wszystkich plikach z danym rozszerzeniem w folderze.
Można także wybrać pliki pod kątem jednego tekstu, a pozamieniać inne. Odsyłam do 'man sed’.grep -rl --include="*.php" 'tekst1' folder/ | xargs sed -i 's/tekst1/tekst2/g'
Programowanie PIC – pierwsze problemy
Same procesorki PIC nie są najgorsze, mimo że nie wyróżniają się jakoś specjalnie od AVR. Dużo więcej problemów sprawia natomiast środowisko programistyczne. Zainstalowałem MPLAB X IDE v.1.85 wraz z kompilatorem C XC8 (v 1.20).
Ogólnie w porównaniu do AVR jest dużo gorzej. Kompilator w wersji darmowej nie pozwala wybrać optymalizacji, co oznacza że:
1) Nasz kod wynikowy będzie prawdopodobnie dużo za duży;
2) Nie wiemy, czy poprawnie zachowywać się będą funkcje typu „delay()”;
Kolejny problem: brak jednoznaczności. Wiele przykładowych kodów znalezionych w internecie nie zadziała. Brak „typowych” bibliotek jak inttypes.h, lub delay.h. Brzmi to może śmiesznie, ale uruchamiając pierwszy program typu „Hello World” migający diodą, brakuje takich funkcji.
Napotkałem dziwne problemy z ustawianiem bitów. Wydają się nie działać kody tego typu:
T2CON |= (1<<TMR2ON)|(1<<T2CKPS1);
, natomiast kod taki:
T2CON = 0x06;
już tak. O co chodzi?
Nie spodziewałem się, że będzie można wykonywać operacje na pojedynczych bitach. Tymczasem taki zapis jest poprawny:
TMR2ON =1;
Zauważyłem, że niektóre rejestry (dokładnie np. STRA) nie zerują się po resecie.
Nie mogę się też połapać, jak ustawiać w programie bity konfiguracyjne procesora. Można znaleźć trzy składnie.
Pierwsza:
#FUSES NOWDT
Druga:
#pragma config WDTEN = OFF
I trzecia:
__config _WDT_OFF
Której używać?
Jeśli macie sugestie, jak rozwiązać moje problemy, proszę piszcie w komentarzach.
Początek programowania PIC
Dzisiaj po raz pierwszy zaprogramowałem procesor z rodziny PIC!
Użyty układ to PIC16F690.
Programator brenner8 mini zakupiłem na aukcji internetowej za śmieszne pieniądze. Mikroprocesor otrzymałem w postaci próbki od firmy Microchip. Parę słów o nim:
- 4KB Pamięci programu
- 256B RAM
- 256B EEPROM
- 17 portów I/O
- 2 timery 8-bit
- 1 timer 16-bit
- 12 kanałowy 10-bit przetwornik AC (ADC)
- Watchdog
- USART
- 2 komparatory analogowe
- Programowane źródło odniesienia! (w pewnym sensie przetwornik D/A)
- Oddzielny moduł PWM, do 4 wyjść
- Interfejs I2C (TWI w AVR)
- Programowanie w układzie (ICSP) (ISP w AVR)
- Interfejs SPI
- Wewnętrzny oscylator
- Brown-out Reset (BOR) – odpowiednik BOD w AVR)
- Zasilanie 2.0-5.5V
Jak widać, jest to w pewnym sensie odpowiednik ATMEGA48.
Układ podpięty do programatora „zaskoczył” od razu.
UPDATE: Kolega albertb zwrócił uwagę, że pamięć tego MCU odpowiada 8KB flash w AVR. Jest to więc bardziej odpowiednik ATMEGA88. Proszę pamiętać, że nie da się dokładnie porównać obu rodzin.