Na początku chciałbym zaznaczyć, że znam się na programowaniu w C tylko natomiast jeśli chodzi o mikrokontrolery to jestem początkujący.
Wszystko zaczęło się od tego, że potrzebowałem zamiennika układu 1-wire DS2423. Jest to podwójny licznik impulsów. Niestety Maxim/Dallas już go nie produkuje ale znalazłem implementację tego licznika na uC AVR.
https://github.com/smurfix/owslave
Kod wynikowy ma ok. 2,3 KB więc Attiny 2313 odpada chyba żeby coś pokombinować.
Problem jest w tym, że standardowo program kompiluje się tylko na ATTiny84 i Atmega168. Attiny84 jest trochę drogi i ciężko dostępny. Natomiast na tme.pl można dostać Atiny85 za ok 9 zł. Z tego co wyczytałem różni się od 84 ilością pinów(8 pinów a 84 ma 16) i kilkoma rejestrami.
Patrząc na kod dokonałem kilku zmian, dzięki czemu kod się kompiluje. Generalnie ruszyłem tylko konfigurację pinów i rejestrów.
Z grubsza skopiowałem sekcje __Attiny84__ później zmieniłem trochę makra.
Kod się kompiluje choć to nie jest przecież gwarancją poprawności.Prosiłbym o zerknięcie na kod czy to co pozmieniałem jest prawidłowe.
Plik ds2423.c tu po prostu skopiowałem
Plik onewire.c tu też nic nie zmieniałem bo wydaje mi się, że attiny85 ma tylko portB
plik features.h tu poczyniłem trochę zmian
Kod oryginału jest dostępny na https://github.com/smurfix/owslave lub w załączniku. Całość z moimi zmianami w załączniku attiny85.
Kompilować należy w ten sposób
Wszystko zaczęło się od tego, że potrzebowałem zamiennika układu 1-wire DS2423. Jest to podwójny licznik impulsów. Niestety Maxim/Dallas już go nie produkuje ale znalazłem implementację tego licznika na uC AVR.
https://github.com/smurfix/owslave
Kod wynikowy ma ok. 2,3 KB więc Attiny 2313 odpada chyba żeby coś pokombinować.
Problem jest w tym, że standardowo program kompiluje się tylko na ATTiny84 i Atmega168. Attiny84 jest trochę drogi i ciężko dostępny. Natomiast na tme.pl można dostać Atiny85 za ok 9 zł. Z tego co wyczytałem różni się od 84 ilością pinów(8 pinów a 84 ma 16) i kilkoma rejestrami.
Patrząc na kod dokonałem kilku zmian, dzięki czemu kod się kompiluje. Generalnie ruszyłem tylko konfigurację pinów i rejestrów.
Z grubsza skopiowałem sekcje __Attiny84__ później zmieniłem trochę makra.
Kod się kompiluje choć to nie jest przecież gwarancją poprawności.Prosiłbym o zerknięcie na kod czy to co pozmieniałem jest prawidłowe.
Plik ds2423.c tu po prostu skopiowałem
#elif defined(__AVR_ATtiny85__) //patryk
#define ADLARREG ADCSRB
#define ADLARMUX 0
Plik onewire.c tu też nic nie zmieniałem bo wydaje mi się, że attiny85 ma tylko portB
#elif defined(__AVR_ATtiny85__)
#define OWPIN PINB
#define OWPORT PORTB
#define OWDDR DDRB
#define ONEWIREPIN 2 // INT0
plik features.h tu poczyniłem trochę zmian
#ifdef __AVR_ATtiny85__
#define F_CPU_ 8000000
#define TIFR0 TIFR //tu chyba jest tylko jeden taki rejestr
#define TIMSK0 TIMSK//jak wyżej
#define PCIF0 PCIF
#define PCIE0 PCIF
#define IMSK GIMSK
#define IFR GIFR
#define ADPIN PINB //tu dla 84 było PINA ale 85 ma tylko PINB chyba
#define ADPIN_vect PCINT0_vect
#define ADMSK PCMSK //tez tlko jeden rejest PCMSK więc usunąłem 0 z PCMSK0
#endif
Kod oryginału jest dostępny na https://github.com/smurfix/owslave lub w załączniku. Całość z moimi zmianami w załączniku attiny85.
Kompilować należy w ten sposób
make ds2423