AVR Assembler Övningsexempel 7 (5 / 12 steg)
Steg 5: Tråd tangentbordet till din analyzer
Bilderna visar hur vi vill tråd knappsatsen till mikrokontroller så att vi kan se resultatet på vår analyzer displayen. I huvudsak tråd vi helt enkelt utdata från knappsatsen till PortC pin 0, som också kallas ADC0 på ATmega328P.
Det finns dock ett par saker. Vi kommer också att koppla en knapp till PD2. Ta dvs en kabel från din 5 v järnväg till en knapp och från andra sidan av knappen till PD2, och slutligen vill vi koppla AREF pin från våra 5 v järnväg och i stället lämna den frånkopplad. Vi kunde sätta in en 0.1 microfarad frikoppling kondensator om vi ville. Detta är en keramisk kondensator med en 104 skrivet på den. De två första siffrorna är numret och den sista siffran är kraften i 10 vi multiplicerar det med för att få svar i picofarads (pico innebär 10 ^ -12), så 104 betyder 10 x 10 ^ 4 picofarads, vilket är detsamma som 100 nanofarads (nano betyder 10 ^ -9), vilket är samma som 0.1 microfarads (mikro betyder 10 ^ -6). Hur som helst, alla innebär denna är stablize AREF PIN-koden när vi kan använda det som vår referens stift.
Vi vill också ett 1 Mohm motstånd mellan PD2 och marken. Vi kommer att ange PD2 som en utgångsstiftet på 0V och vi kommer att utlösa en positiv utkanten på att pin. Vi vill att kanten ska försvinna omedelbart när vi släpper knappen så vi kommer att infoga detta "dra ner" motstånd.
Anledningen att vi vill att knappen är att vi vill utlösa vår Analog-till-Digital-omvandlare av pin INT0 på chip, som också är PD2. Så småningom vi skulle vilja tangenttryckning både utlösa ADC och också ge bidrag för att konverteras utan att ha en separat knapp, men sätt timing verk vi börjar genom att ha en separat knapp för att utlösa ADC och en gång vi stryka alla buggar ut och är övertygade om att allt fungerar, då vi kommer att ta itu med bullret och Tidsproblem som medföljer utlöser från samma knapp tryck som vi vill läsa.
Så för nu är hur det fungerar kommer vi hålla ned en tangent, sedan trycka på knappen för att utlösa ADC, och sedan släppa och förhoppningsvis det binära värdet av knappen vi drev kommer att dyka upp på analysatorn.
Så låt oss skriva någon kod som kommer att utföra som.