einfaches Beispielprogramm



  • Hallo, ich versuche gerade in die µC programmierung einzusteigen.
    dafür habe ich ein testboard mit einem Philips P89C51RD2Hxx ( 80C51)
    bekommen.
    ich möchte nun ganz einfach über pwm eine led zum blinken bekommen, nur
    weiß ich nicht, wie ich das anstelle, da ich wie gesagt gerade damit
    anfange!

    kann mir jemand mal so ein kleines programm basteln mit jeweiliger
    erläuterung, möchte gerne wissen, was ich genau da mache.
    ich schreibe mit hilfe von keilµVision in C

    ich danke euch vielmals



  • blinken, na etwa so:

    LED_PORTBIT_DATENRICHTUNG = AUSGANG;
    for(;;)
    {
      LED_PORTBIT = 1;
      pause();
      LED_PORTBIT = 0;
      pause();
    }
    

    PWM nimmt man eigentlich um die helligkeit von LEDs einzustellen 😉



  • da habe ich mich wohl falsch ausgedrückt, ich möchte ja eigentlich auch die helligkeit ( dimmen) verändern.

    ps macht diese zeile?

    LED_PORTBIT_DATENRICHTUNG = AUSGANG;
    


  • Bulls3y3 schrieb:

    da habe ich mich wohl falsch ausgedrückt, ich möchte ja eigentlich auch die helligkeit ( dimmen) verändern.

    könnteste auch mit dem code da oben machen, musst nur variable pausenzeiten programmieren. ist die erste pause lang und die zweite kurz, dann lauchtet die LED heller, umgekehrt ist sie dunkler. du musst das natürlich mit einer höheren frequenz machen als 'blinken', damit man kein flackern sieht...

    Bulls3y3 schrieb:

    ps macht diese zeile?

    LED_PORTBIT_DATENRICHTUNG = AUSGANG;
    

    das ist pseudocode. soll andeuten, dass du den portpin, an dem die LED hängt, auf 'ausgang' schalten sollst.
    🙂



  • das liest sich bei dir so einfach, nur leider weiß ich nciht, wie ich das in code umsetzte, könntest du es mir vll. mal zeigen? wie gesagt, fange gerade erst damit an....

    #include <reg52.h>
    
    sbit P1Bit1 = P1^1;
    
    void pause()
    
    void main (void)
    {
    for (;;)
       {
        P1Bit1 = 1;
        pause();
        P1Bit1 = 0;
        pause();
       }
    }
    


  • Bulls3y3 schrieb:

    ...nur leider weiß ich nciht, wie ich das in code umsetzte, könntest du es mir vll. mal zeigen? wie gesagt, fange gerade erst damit an....

    erstmal müssteste dich mit der MCU, dem board und den tools beschäftigen (wie alles funktioniert, wo alles angeschlossen ist, wie du code da rein bekommst usw).
    meistens gibt's auch schon beispielcodes von den herstellern (controller, board und compiler, etc).
    wenn du damit umgehen kannst, dann brauchste etwas C und/oder assembler-kenntnisse um code zu schreiben und dann kannste schon loslegen...
    ...und bei konkreten problemen meldeste dich entweder hier, oder da: http://www.mikrocontroller.net/



  • was muss noch zum obrigen code dazu? muss ja die funktion pause noch befüllen.
    zudem weiß ich nicht, welches bit bei mir der ausgang für pwm ist



  • kann mir nicht mal jemand von euch so einen code basteln?
    ich würde es gerne selber können, habe aber keinen anhaltspunkt wie ich das anstelle.
    weiß nicht, welchen port ich für den ausgang nehme,weiß nicht welcher port für pwm ist....konnte nur aus dem datenblatt lesen, dass p3.4 und p3.5 die timer t1 und t0 sind.


Anmelden zum Antworten