Stap 2: Hergebruik van Arduino bestanden voor micro en de timer
U vindt de bestanden die nodig zijn in de Arduino-map:
Hardware/arduino/cores/arduino (ja tweemaal arduino)
er vind je de arduino-bestanden, dat scheelt een hoop mensen leren de C van AVR:-), maar tegen een kostprijs van snelheid en bouwgrootte.
Ik nodig de micro functies en de interrupt, die ik in wiring.c gevonden
Ik heb gekopieerd: (ook kopiëren van de variabelen en definieert ik nodig had van wiring.h)
Signal(TIMER0_OVF_vect)
unsigned long millis()
unsigned long micros()
maar zeer belangrijk, om de timer/onderbreken begonnen is de:
VOID init()
Er is een heleboel code die kunt u overslaan als u weet dat u een atmega328.
Dan krijgen we deze code in twee mooie bestanden, een bron en een koptekst:
http://http//:www.contrechoc.com/Instructables/Infra-Red.zip
(Dit is een totale AVR project die u voor verdere plezier gebruiken kunt.)
Daarnaast zijn hieronder opgenomen zijn, een UART.c en UART.h, voor de communicatie met de vloeibare kristallen.
U ziet dat ik heb de opvulling een int variabele.
Ook de analoge lezen is geactiveerd voor een LDR, en één pin wordt gebruikt om de andere schouder oplichten wanneer een signaal op 38kHz is ontvangen.
initTimers(); wordt gebruikt om te beginnen de interrupts, de functie init() van wiring.c
In het header-bestand vindt u de verbindingen met de groepen van LED's (flexibele LED strips)
verbindingen met de PIN van de led cirkel
unsigned char rijen [8] = {7, 6, 5, 4, 3, 2, 1, 0};
unsigned char cols [8] = {15 14 13, 12, 11, 10, 9, 8};
De interrupt-functie verschilt van de flexibele LED strips die ik eerder gebruikt:
Signal(TIMER0_OVF_vect)
In deze functie, naast de "Arduino code" heb ik toegevoegd mijn eigen interruptFie();
Deze functie ervoor zorgt dat de LED blok MATRIX activiteiten.
In de functie van setIRPattern (uint8_t count) ziet u de matrix voor de LED's op de band van de schouder.
De 3's geven de ontbrekende LED's formulier de 64 (ik gebruik niet de volledige 64 = 8 x 8 LED's in de vest.)