AT16EvalBoardPollin

Zurück (C) Christof Ermer, Regensburg


17.03.2010



PDFs des Boards: und des Funkmodul-Boards:

AtmelEvalBoard.PDF
AVR_EVAL_FUNK_Board.

Anleitung zur Einstellung eines Terminals bzw  der ISP und seriellen Programmiersoftware PonyProg.
Mit PonyProg kan sowohl der In-System-Programmer ( ISP ) als auch die deutlich langsamere serielle Programmiersmöglichkeit genutzt werden.
Meine Empfehlung ist nach wie vor der Parallel-dongle. (siehe meine weiteren Unterseiten )
Leider mangels des vom Aussterben bedrohten LPTs.  ohne grosse Zukunft.
Testtool.pdf



Ich habe für das Pollin AVR Evaluierungboard  eine "bessere" Portzugriffsplatine gebaut. Im Orgnial ist ein mehr oder weniger unbrauchbarer 40poliger Stecker
Diese Zusatzplatine erlaubt einfach tauschbare Portnutzungen. A-B-C-D

EAGLE Pläne
AVR Eval Adapter_long_VonUnten.sch
AVR Eval Adapter_long_VonUnten.brd

So wird das Zusatzbord  von unten eingebaut.

Ansicht unten
Platine von unten eingelötet!

Ansicht oben

einzelene zusätzliche Platinen.
mitte unten ,das Portadapter Board.



Schaltplan
Programmier Codes für main.h  und main.c weiter unten:
Darin enthalten die komplette Ansteuerung der Tasten, Beeper etc..und eine Testausgabe an der Seriellen Schnittstelle.
TT <13>  zeigt den TickCounter;
das Kommando "Ping" mit einem Terminal eingegebne ( 13 = Carsiage Return )  erzeugt ein "Pong"
SPC,Value setzt den Port C.
RPC, Liest vom Port C




in das Header file main.h :

#define IHAVENOBRAIN    "I habe no brain."   
#define USEYOURS        "Use your own"


#define EVALBORD_HARDWARE_POLLING

//Pollin EVALUIERUNGS BOARD...
#define BOARD_HW_PORT_OUT                   PORTD
#define BOARD_HW_PORT_IN                       PIND
#define PORTD_DDRX_EVAL_OUTMASK    0b11100010                

#define RX_BIT        PD0
#define TX_BIT        PD1
#define KEY1_BIT    PD2
#define KEY2_BIT    PD3
#define KEY3_BIT    PD4
#define LED1_BIT    PD5
#define LED2_BIT    PD6
#define SUMMER_BIT    PD7

//Byte-Masken sind die binaere Umsetzung von Aufzaehlbezeichnern ( PD 0..7 )
#define KEY1_MASKE    0x04    //0000    0100
#define KEY2_MASKE    0x08   
//0000    1000
#define KEY3_MASKE    0x10    //0001    0000
#define LED1_MASKE    0x20    //0010    0000
#define LED2_MASKE    0x40    //0100    0000
#define SUMMER_MASKE    0x80    //1000    0000


in das Programm file main.c :
und zwar in den Main Loop:  daher der Name Polling.!

#ifdef EVALBORD_HARDWARE_POLLING
    if(BOARD_HW_PORT_IN & KEY1_MASKE)
        {
        BOARD_HW_PORT_OUT |= LED1_MASKE;
        }
    else
        {
        BOARD_HW_PORT_OUT &= ~LED1_MASKE;
        };
   
    if(BOARD_HW_PORT_IN & KEY2_MASKE)
        {
        BOARD_HW_PORT_OUT |= LED2_MASKE;
        }
    else
        {
        BOARD_HW_PORT_OUT &= ~LED2_MASKE;
        };
               
    if(BOARD_HW_PORT_IN & KEY3_MASKE)
        {
        BOARD_HW_PORT_OUT |= SUMMER_MASKE;
        }
    else
        {
        BOARD_HW_PORT_OUT &= ~SUMMER_MASKE;
        };
#endif