Wer hat Erfahrung im programmieren von Programmern für µController?



  • Ich wollte für meinen µController (MC68HC11F1FN, eher selten) einen Programmer programmieren, weil ich kein Progi kenn, das mit diesem µC kompitabel ist.
    Hat jemand damit Erfahrungen oder gibts da ne LIB ?

    MFG
    FatalError



  • nix bis wenig mit standard c++ zu machen...

    hast du nen programmer (also ne schalte, mit der de daten in den eeprom hauen kannst?) wenn nein --> google

    ansonsten brauchst entweder nen asembler oder (besser) nen c-compiler für deinen uc. auch bei google.



  • Ich will ja eben einen solchen Programmer programmieren!
    Eben einen, mit dem man Daten auf den µC hauen kann ! 🙂

    Hab da noch was gefunden. Eine Headerdatei für den MC68HC11F1.
    Hier ist sie:

    /* (C) MOTOROLA, INC., 1993
     *
     * FILENAME: hc11f1.h
     *
     * DESCRIPTION: Register and bit macro definitions for the MC68HC11F1
     * microcontroller.
     *
     * CREATED: 11/18/93
     *
     * REVISION HISTORY:
     *
     * 12/16/93 - Acknowledgements section added.
     *
     * 12/02/93 - Disclaimer added.
     *
     * ACKNOWLEDGEMENTS:
     *
     * Developed with ideas from Ted Van Sickle's "Programming
     * Microcontrollers in C" class and G. J. Lipovski's "Object-Oriented
     * Interfacing to 16-bit Microcontrollers" book.
     *
     * by John Bodnar
     *
     * Motorola Inc.
     * AMCU Applications, Mail Drop OE39
     * 6501 William Cannon Drive West
     * Austin, TX 78735-8598
     *
     * Internet: r16292@email.sps.mot.com
     *
     * NOTE: Your comments, suggestions, and corrections are requested and
     * greatly appreciated.
     *
     * DISCLAIMER: Motorola reserves the right to make changes without
     * further notice to any products herein.  Motorola makes no warranty,
     * representation or guarantee regarding the suitability of its
     * products for any particular purpose, nor does Motorola assume any
     * liability arising out of the application or use of any product or
     * circuit, and specifically disclaims any and all liability, including
     * without limitation consequential or incidental damages.  "Typical"
     * parameters can and do vary in different applications.  All operating
     * parameters, including "Typicals" must be validated for each customer
     * application by customer's technical experts.  Motorola does not
     * convey any license under its patent rights nor the rights of others.
     * Motorola products are not designed, intended, or authorized for use
     * as components in systems intended for surgical implant into the
     * body, or other applications intended to support or sustain life, or
     * for any other application in which the failure of the Motorola
     * product could create a situation where personal injury or death may
     * occur.  Should Buyer purchase or use Motorola products for any such
     * unintended or unauthorized application, Buyer shall indemnify and
     * hold Motorola and its officers, employees, subsidiaries, affiliates,
     * and distributors harmless against all claims, costs, damages, and
     * expenses, and reasonable attorney fees arising out of, directly or
     * indirectly, any claim of personal injury or death associated with
     * such unintended or unauthorized use, even if such claim alleges
     * that Motorola was negligent regarding the design or manufacture of
     * the part.  Motorola is a registered trademark of Motorola, Inc.
     * Motorola, Inc. is an Equal Opportunity/Affirmative Action Employer.
     */
    
    #define REGISTER unsigned char
    
    #define REG_BASE 0x1000
    
    #define PORTA   (*(volatile REGISTER*)(REG_BASE + 0x00))
    #define DDRA    (*(REGISTER *)(REG_BASE + 0x01))
    #define PORTG   (*(volatile REGISTER *)(REG_BASE + 0x02))
    #define DDRG    (*(REGISTER *)(REG_BASE + 0x03))
    #define PORTB   (*(REGISTER *)(REG_BASE + 0x04))
    #define PORTF   (*(REGISTER *)(REG_BASE + 0x05))
    #define PORTC   (*(volatile REGISTER *)(REG_BASE + 0x06))
    #define DDRC    (*(REGISTER *)(REG_BASE + 0x07))
    #define PORTD   (*(volatile REGISTER *)(REG_BASE + 0x08))
    #define DDRD    (*(REGISTER *)(REG_BASE + 0x09))
    #define PORTE   (*(volatile REGISTER *)(REG_BASE + 0x0A))
    #define CFORC   (*(REGISTER *)(REG_BASE + 0x0B))
    #define OC1M    (*(REGISTER *)(REG_BASE + 0x0C))
    #define OC1D    (*(REGISTER *)(REG_BASE + 0x0D))
    #define TCNT    (*(volatile unsigned int *)(REG_BASE + 0x0E))
    #define TIC1    (*(volatile unsigned int *)(REG_BASE + 0x10))
    #define TIC2    (*(volatile unsigned int *)(REG_BASE + 0x12))
    #define TIC3    (*(volatile unsigned int *)(REG_BASE + 0x14))
    #define TOC1    (*(unsigned int *)(REG_BASE + 0x16))
    #define TOC2    (*(unsigned int *)(REG_BASE + 0x18))
    #define TOC3    (*(unsigned int *)(REG_BASE + 0x1A))
    #define TOC4    (*(unsigned int *)(REG_BASE + 0x1C))
    #define TI4O5   (*(volatile unsigned int *)(REG_BASE + 0x1E))
    #define TCTL1   (*(REGISTER *)(REG_BASE + 0x20))
    #define TCTL2   (*(REGISTER *)(REG_BASE + 0x21))
    #define TMSK1   (*(REGISTER *)(REG_BASE + 0x22))
    #define TFLG1   (*(volatile REGISTER *)(REG_BASE + 0x23))
    #define TMSK2   (*(REGISTER *)(REG_BASE + 0x24))
    #define TFLG2   (*(volatile REGISTER *)(REG_BASE + 0x25))
    #define PACTL   (*(REGISTER *)(REG_BASE + 0x26))
    #define PACNT   (*(volatile REGISTER *)(REG_BASE + 0x27))
    #define SPCR    (*(REGISTER *)(REG_BASE + 0x28))
    #define SPSR    (*(volatile REGISTER *)(REG_BASE + 0x29))
    #define SPDR    (*(volatile REGISTER *)(REG_BASE + 0x2A))
    #define BAUD    (*(REGISTER *)(REG_BASE + 0x2B))
    #define SCCR1   (*(volatile REGISTER *)(REG_BASE + 0x2C))
    #define SCCR2   (*(REGISTER *)(REG_BASE + 0x2D))
    #define SCSR    (*(volatile REGISTER *)(REG_BASE + 0x2E))
    #define SCDR    (*(volatile REGISTER *)(REG_BASE + 0x2F))
    #define ADCTL   (*(volatile REGISTER *)(REG_BASE + 0x30))
    #define ADR1    (*(volatile REGISTER *)(REG_BASE + 0x31))
    #define ADR2    (*(volatile REGISTER *)(REG_BASE + 0x32))
    #define ADR3    (*(volatile REGISTER *)(REG_BASE + 0x33))
    #define ADR4    (*(volatile REGISTER *)(REG_BASE + 0x34))
    #define BPROT   (*(REGISTER *)(REG_BASE + 0x35))
    #define OPT2    (*(REGISTER *)(REG_BASE + 0x38))
    #define OPTION  (*(REGISTER *)(REG_BASE + 0x39))
    #define COPRST  (*(REGISTER *)(REG_BASE + 0x3A))
    #define PPROG   (*(REGISTER *)(REG_BASE + 0x3B))
    #define HPRIO   (*(REGISTER *)(REG_BASE + 0x3C))
    #define INIT    (*(REGISTER *)(REG_BASE + 0x3D))
    #define TEST1   (*(REGISTER *)(REG_BASE + 0x3E))
    #define CONFIG  (*(REGISTER *)(REG_BASE + 0x3F))
    #define CSSTRH  (*(REGISTER *)(REG_BASE + 0x5C))
    #define CSCTL   (*(REGISTER *)(REG_BASE + 0x5D))
    #define CSGADR  (*(REGISTER *)(REG_BASE + 0x5E))
    #define CSGSIZ  (*(REGISTER *)(REG_BASE + 0x5F))
    
    /* Bit names for general use */
    #define bit7    0x80
    #define bit6    0x40
    #define bit5    0x20
    #define bit4    0x10
    #define bit3    0x08
    #define bit2    0x04
    #define bit1    0x02
    #define bit0    0x01
    
    /* PORTA bit definitions 0x00 */
    #define PA7     bit7
    #define PA6     bit6
    #define PA5     bit5
    #define PA4     bit4
    #define PA3     bit3
    #define PA2     bit2
    #define PA1     bit1
    #define PA0     bit0
    
    /* DDRA bit definitions 0x01 */
    #define DDA7    bit7
    #define DDA6    bit6
    #define DDA5    bit5
    #define DDA4    bit4
    #define DDA3    bit3
    #define DDA2    bit2
    #define DDA1    bit1
    #define DDA0    bit0
    
    /* PORTG bit definitions 0x02 */
    #define PG7     bit7
    #define PG6     bit6
    #define PG5     bit5
    #define PG4     bit4
    #define PG3     bit3
    #define PG2     bit2
    #define PG1     bit1
    #define PG0     bit0
    
    /* DDRG bit definitions 0x03 */
    #define DDG7    bit7
    #define DDG6    bit6
    #define DDG5    bit5
    #define DDG4    bit4
    #define DDG3    bit3
    #define DDG2    bit2
    #define DDG1    bit1
    #define DDG0    bit0
    
    /* PORTB bit definitions 0x04 */
    #define PB7     bit7
    #define PB6     bit6
    #define PB5     bit5
    #define PB4     bit4
    #define PB3     bit3
    #define PB2     bit2
    #define PB1     bit1
    #define PB0     bit0
    
    /* PORTF bit definitions 0x05 */
    #define PF7     bit7
    #define PF6     bit6
    #define PF5     bit5
    #define PF4     bit4
    #define PF3     bit3
    #define PF2     bit2
    #define PF1     bit1
    #define PF0     bit0
    
    /* PORTC bit definitions 0x06 */
    #define PC7     bit7
    #define PC6     bit6
    #define PC5     bit5
    #define PC4     bit4
    #define PC3     bit3
    #define PC2     bit2
    #define PC1     bit1
    #define PC0     bit0
    
    /* DDRC bit definitions 0x07 */
    #define DDC7    bit7
    #define DDC6    bit6
    #define DDC5    bit5
    #define DDC4    bit4
    #define DDC3    bit3
    #define DDC2    bit2
    #define DDC1    bit1
    #define DDC0    bit0
    
    /* PORTD bit definitions 0x08 */
    #define PD5     bit5
    #define PD4     bit4
    #define PD3     bit3
    #define PD2     bit2
    #define PD1     bit1
    #define PD0     bit0
    
    /* DDRD bit definitions 0x09 */
    #define DDD5    bit5
    #define DDD4    bit4
    #define DDD3    bit3
    #define DDD2    bit2
    #define DDD1    bit1
    #define DDD0    bit0
    
    /* PORTE bit definitions 0x0A */
    #define PE7     bit7
    #define PE6     bit6
    #define PE5     bit5
    #define PE4     bit4
    #define PE3     bit3
    #define PE2     bit2
    #define PE1     bit1
    #define PE0     bit0
    
    /* CFORC bit definitions 0x0B */
    #define FOC1    bit7
    #define FOC2    bit6
    #define FOC3    bit5
    #define FOC4    bit4
    #define FOC5    bit3
    
    /* OC1M bit definitions 0x0C */
    #define OC1M7   bit7
    #define OC1M6   bit6
    #define OC1M5   bit5
    #define OC1M4   bit4
    #define OC1M3   bit3
    
    /* OC1D bit definitions 0x0D */
    #define OC1D7   bit7
    #define OC1D6   bit6
    #define OC1D5   bit5
    #define OC1D4   bit4
    #define OC1D3   bit3
    
    /* TCTL1 bit definition 0x20 */
    #define OM2     bit7
    #define OL2     bit6
    #define OM3     bit5
    #define OL3     bit4
    #define OM4     bit3
    #define OL4     bit2
    #define OM5     bit1
    #define OL5     bit0
    
    /* TCTL2 bit definitions 0x21 */
    #define EDG4B   bit7
    #define EDG4A   bit6
    #define EDG1B   bit5
    #define EDG1A   bit4
    #define EDG2B   bit3
    #define EDG2A   bit2
    #define EDG3B   bit1
    #define EDG3A   bit0
    
    /* TMSK1 bit definitions 0x22 */
    #define OC1I    bit7
    #define OC2I    bit6
    #define OC3I    bit5
    #define OC4I    bit4
    #define I4O5I   bit3
    #define IC1I    bit2
    #define IC2I    bit1
    #define IC3I    bit0
    
    /* TFLG1 bit definitions 0x23 */
    #define OC1F    bit7
    #define OC2F    bit6
    #define OC3F    bit5
    #define OC4F    bit4
    #define I4O5F   bit3
    #define IC1F    bit2
    #define IC2F    bit1
    #define IC3F    bit0
    
    /* TMSK2 bit definitions 0x24 */
    #define TOI     bit7
    #define RTII    bit6
    #define PAOVI   bit5
    #define PAII    bit4
    #define PR1     bit1
    #define PR0     bit0
    
    /* TFLG2 bit definitions 0x25 */
    #define TOF     bit7
    #define RTIF    bit6
    #define PAOVF   bit5
    #define PAIF    bit4
    
    /* PACTL bit definitions 0x26 */
    #define PAEN    bit6
    #define PAMOD   bit5
    #define PEDGE   bit4
    #define I4O5    bit2
    #define RTR1    bit1
    #define RTR0    bit0
    
    /* SPCR bit definitions 0x28 */
    #define SPIE    bit7
    #define SPE     bit6
    #define DWOM    bit5
    #define MSTR    bit4
    #define CPOL    bit3
    #define CPHA    bit2
    #define SPR1    bit1
    #define SPR0    bit0
    
    /* SPSR bit definitions 0x29 */
    #define SPIF    bit7
    #define WCOL    bit6
    #define MODF    bit4
    
    /* BAUD bit definitions 0x2B */
    #define TCLR    bit7
    #define SCP1    bit5
    #define SCP0    bit4
    #define RCKB    bit3
    #define SCR2    bit2
    #define SCR1    bit1
    #define SCR0    bit0
    
    /* SCCR1 bit definition 0x2C */
    #define R8      bit7
    #define T8      bit6
    #define M       bit4
    #define WAKE    bit3
    
    /* SCCR2 bit definitions 0x2D */
    #define TIE     bit7
    #define TCIE    bit6
    #define RIE     bit5
    #define ILIE    bit4
    #define TE      bit3
    #define RE      bit2
    #define RWU     bit1
    #define SBK     bit0
    
    /* SCSR  bit definitions 0x2E */
    #define TDRE    bit7
    #define TC      bit6
    #define RDRF    bit5
    #define IDLE    bit4
    #define OR      bit3
    #define NF      bit2
    #define FE      bit1
    
    /* SCDR bit definitions 0x2F */
    #define R7T7    bit7
    #define R6T6    bit6
    #define R5T5    bit5
    #define R4T4    bit4
    #define R3T3    bit3
    #define R2T2    bit2
    #define R1T1    bit1
    #define R0T0    bit0
    
    /* ADCTL bit definitions 0x30 */
    #define CCF     bit7
    #define SCAN    bit5
    #define MULT    bit4
    #define CD      bit3
    #define CC      bit2
    #define CB      bit1
    #define CA      bit0
    
    /* BPROT bit definitions 0x35 */
    #define PTCON   bit4
    #define BPRT3   bit3
    #define BPRT2   bit2
    #define BPRT1   bit1
    #define BPRT0   bit0
    
    /* OPT2 bit definitions 0x38 */
    #define GWOM    bit7
    #define CWOM    bit6
    #define CLK4X   bit5
    
    /* OPTION bit definitions 0x39 */
    #define ADPU    bit7
    #define CSEL    bit6
    #define IRQE    bit5
    #define DLY     bit4
    #define CME     bit3
    #define FCME    bit2
    #define CR1     bit1
    #define CR0     bit0
    
    /* PPROG bit definitions 0x3B */
    #define ODD     bit7
    #define EVEN    bit6
    #define BYTE    bit4
    #define ROW     bit3
    #define ERASE   bit2
    #define EELAT   bit1
    #define EEPGM   bit0
    
    /* HPRIO bit definitions 0x3C */
    #define RBOOT   bit7
    #define SMOD    bit6
    #define MDA     bit5
    #define IRVNE   bit4
    #define PSEL3   bit3
    #define PSEL2   bit2
    #define PSEL1   bit1
    #define PSEL0   bit0
    
    /* INIT  bit definitions 0x3D */
    #define RAM3    bit7
    #define RAM2    bit6
    #define RAM1    bit5
    #define RAM0    bit4
    #define REG3    bit3
    #define REG2    bit2
    #define REG1    bit1
    #define REG0    bit0
    
    /* TEST1 bit definitions 0x3E */
    #define TILOP   bit7
    #define OCCR    bit5
    #define CBYP    bit4
    #define DISR    bit3
    #define FCM     bit2
    #define FCOP    bit1
    #define TCON    bit0
    
    /* CONFIG bit definitions 0x3F */
    #define EE3     bit7
    #define EE2     bit6
    #define EE1     bit5
    #define EE0     bit4
    #define NOCOP   bit2
    #define EEON    bit0
    
    /* CSSTRH bit definitions 0x5C */
    #define IO1SA   bit7
    #define IO1SB   bit6
    #define IO2SA   bit5
    #define IO2SB   bit4
    #define GSTHA   bit3
    #define GSTHB   bit2
    #define PSTHA   bit1
    #define PSTHB   bit0
    
    /* CSCTL bit definitions 0x5D */
    #define IO1EN   bit7
    #define IO1PL   bit6
    #define IO2EN   bit5
    #define IO2PL   bit4
    #define GCSPR   bit3
    #define PCSEN   bit2
    #define PSIZA   bit1
    #define PSIZB   bit0
    
    /* CSGADR bit definitions 0x5E */
    #define GA15    bit7
    #define GA14    bit6
    #define GA13    bit5
    #define GA12    bit4
    #define GA11    bit3
    #define GA10    bit2
    
    /* CSGSIZ bit definitions 0x5F */
    #define IO1AV   bit7
    #define IO2AV   bit6
    #define GNPOL   bit4
    #define GAVLD   bit3
    #define GSIZA   bit2
    #define GSIZB   bit1
    #define GSIZC   bit0
    


  • Ich glaub du brauchst eher ne Doku für den Controller als einen Header mit dem nicht jeder auf Anhieb wirklich viel anfangen kann. Ein paar Bitdefinitionen aus irgendeinem Header reichen da nicht.



  • Meinst du jetzt ein Datenblatt?
    Hab ich, in dem steht auch der Speicherbereich und so.

    Hier is der Link zu dem Datenblatt: [url] http://e-www.motorola.com/brdata/PDFDB/docs/MC68HC11F1.pdf [/url]

    [ Dieser Beitrag wurde am 13.05.2003 um 15:47 Uhr von FatalError editiert. ]



  • ich meine du brauchst eine schaltung(= Hardware!) um deinen uc überhaupt an z.b. die serielle schnittstelle zu bolzen. programmer gibts verschiedene. z.b. ponyprog.
    um einen uc zu programmieren brauchst du normalerweise folgendes:
    - isp (inter-system-programmer) --> der schreibt dir dein eprom voll
    - programmer-software (ein programm, dass deinen isp anspricht), üblicherweise ponyprog und konsorten
    - uc 🙂
    - compiler (asm, c/c++)

    bei google ist alles zu haben...



  • Ach so meinst du das!
    Ja ein ISP hab ich, zwar billig (ohne Bauteile) aber oft verwendet.
    Ponyprog und eine Test.hex hab ich ebenfalls, bloß ist halt das Problem, das PonyP. inkompitabel mit meinem µC ist. Hab schon alle Einträge durchprobiert,
    hat aber nichts davon funktioniert.
    Auch bei google und selbst mit Copernic(Suchprogramm, das mehrere Suchmaschinen abfragt) bin ich nicht fündig geworden.
    Deshalb dachte ich, ich könnte sowas selbst machen.

    MFG
    FatalError



  • glaube eher, dass ponyprog nicht mit deinem isp zusammenpasst. such mal nach einer isp+programmer zusammenstellung für motorla chips (deiner is glaub ich motorola)



  • noch ein paar links (z.t. mit foren)
    www.mikrocontroller.net www.microcontroller.com

    such bei google nach allgemeinen uc-controller (oder motorola-uc) foren. die wissen meist mehr. hier ham sich noch nicht so viele mit uc's auseinandergesetzt. marc++us hat mal mit motorola-ucs gearbeitete, vielleicht weis der was



  • OK, ich danke für deine Hilfe

    MFG
    FatalError


Anmelden zum Antworten