- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Von Bascom in C/Ansi C

  1. #11
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Es ist einfacher (und bringt dir auch mehr), wenn du versuchst, die Arbeitsweise des Programms zu verstehen und es dann selber in C programmierst. Es sind eh nicht alle Sachen übertragbar, ein Print in BASIC macht was anderes als ein printf in C! Oder such dir ein paar nicht zu schwierige C-Beispiele aus für dein erstes C-Projekt, und nicht gleich ne "Übersetzung" von BASIC nach C.

    Der Teufel steckt im Detail, vor allem bei µCs kann das am Anfang frustrierend sein. Klar, du willst möglichst schnell dein Ding zum laufen haben, aber die investierte Zeit wird sich lohnen...
    Disclaimer: none. Sue me.

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    19.01.2006
    Ort
    Mettmann
    Alter
    36
    Beiträge
    9
    ich weiß nicht ob ihr mich nicht versteht aber ich weiß absolut nicht was da steht ... ich kenne die ganzen basecombefehle definitionen nicht !! deshalb kann ich auch nicht nachvollziehen was da abläuft, geschweige denn es in c zu übersetzen!!
    auch nicht stück für stück weil ich einfach 0 ahnung von basecom habe ! !
    wenn mir einer alles erklärt gerne, aber so wäre es für mich einfacher es in c zu haben denn dann kann ich die basecombefehel auch nachvollziehen !

    danke für eure zahlreichen beiträge !
    aber eine c übersetzung wäre mir am liebsten..

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Zitat Zitat von Hanni
    Zitat Zitat von izaseba
    Der Geber hängt auf einem Externen Interrupt.
    Wenn der auslöst wird eine Variable Zaehlerirq0 um eins erhöht.

    Timer 1 wird so konfiguriert, daß er jede Sekunde einen Interrupt auslöst.
    Hier wird die Zaehlerirq0 ausgelesen und auf Null gesetzt.

    In der Hauptschleife würd ich dann die Berechnungen machen und ausgeben,
    Reicht dir der Ansatz nicht mit dem Datenblatt und der Compilerdokumentation ?
    da:

    Zitat Zitat von SprinterSB
    Es ist einfacher (und bringt dir auch mehr), wenn du versuchst, die Arbeitsweise des Programms zu verstehen und es dann selber in C programmierst. Es sind eh nicht alle Sachen übertragbar, ein Print in BASIC macht was anderes als ein printf in C! Oder such dir ein paar nicht zu schwierige C-Beispiele aus für dein erstes C-Projekt, und nicht gleich ne "Übersetzung" von BASIC nach C.
    Ich geb dir noch nen Tip am Rande: Eine komplette übersetzung wird dir hier keiner liefern. Das ist nunmal nicht Sinn und Zweck dieses Forums.
    Fakt ist auch, das ohne Eigeninitiative hier recht wenig passieren wird.
    Ergo: Fang an zu programmieren und wenn du dabei auf Probleme stößt werden deine Fragen und Probleme hier gerne beantwortet.

    Grüße,
    da Hanni.

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    19.01.2006
    Ort
    Mettmann
    Alter
    36
    Beiträge
    9
    ich versteh das hauptprogramm ja, aber das hier

    zitat
    "
    Der Geber hängt auf einem Externen Interrupt.
    Wenn der auslöst wird eine Variable Zaehlerirq0 um eins erhöht.

    Timer 1 wird so konfiguriert, daß er jede Sekunde einen Interrupt auslöst.
    Hier wird die Zaehlerirq0 ausgelesen und auf Null gesetzt.
    "


    weiß ich einfach nicht wie das aussehen soll in c weil ich in der hinsicht noch nie was gemacht habe! was ist ein interrupt ? und irq0 ???

    mfg

    stefan

  5. #15
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Nuja, in dem Fall empfehle ich dir das Datenblatt einmal genauer anzusehen, genauso wie die Doku der entsprechenden Lib deines Compilers.

    Im übrigen könnte ein Blick in diverse Tutorials, z.B. hier im Wiki oder auf www.mikrocontroller.net eine ganze Ecke weiterhelfen.

    Grüße,
    da Hanni.

  6. #16
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.01.2006
    Ort
    Mönchengladbach
    Beiträge
    544
    So,
    ich versuche mal den Quelltext zu Kommentieren... dann sollte jeder
    sehen, daß das ganz einfach zu verstehen ist.

    Code:
    #######################################################
    
    
    
    $regfile = "m32def.dat"    // Include Datei für Registerdefinitionen
    ' bei Mega 16 $regfile = "m16def.dat"
    $framesize = 32  // Irgendwelche Einstellungen für Bascom  
    $swstack = 32   //  Stack?!?!
    $hwstack = 32  //  Stack?!?!
     
    $crystal = 16000000 'Quarzfrequenz  //Quarzfrequen
    $baud = 9600  // Serielle Schnittstelle
    
    
    
    Config Int0 = Falling  // INT0 bei fallender Flanke an PIN.d2
    
    Config Timer1 = Timer, Prescale = 256 // Timer1 einstellen 
    Const Timervorgabe = 3036 //Konstante definieren
    Const Markierungenproscheibe = 120 //DITO
    
    Dim Zaehlerirq0 As Long // Variable deklarieren
    Dim Impulseprosekunde As Long //dito
    Dim Impulseprominute As Long //dito
    Dim Umdrehungenprominute As Integer //dito
    
    Print  //
    Print "* RN-Control 1.4 *"  //
    Print "Drehzahl Messung"; ""  // Text ausgeben
    
    
    
    Zaehlerirq0 = 0 //Variable=Wert
    On Int0 Irq0 // Bei INT0 die Subroutine "Irq0" aufrufen
    Enable Int0 // INT0 einschalten
    
    On Timer1 Timer_irq  //Bei Timer1-Int die Sub "Timer_irq" aufrufen
    Enable Timer1 //Timer1-Int einschalten
    
    Enable Interrupts // Alle Interrupts freigeben
    
    
    Do  // Endlosschleife 
    Print   //
    Print "Impulse Sek: "; Impulseprosekunde  // Text und Variable ausgeben
    Impulseprominute = Impulseprosekunde * 60  // Irgendwas rechnen
    Umdrehungenprominute = Impulseprominute / Markierungenproscheibe  //dito
    Print "Umdreh. Min: "; Umdrehungenprominute  //Text und Var ausgeben
    Wait 3 //Warten
    Loop  //Endlosschleife-Ende
    
    End  // Ende des Hauptprogramms
    
    
    
    
    'Pro Impuls (Markierung auf Scheibe) ein Aufruf
    Irq0:  //Subroutine "Irq0"
    Incr Zaehlerirq0 //Variable um eins erhöhen
    Return // Zurück zum Hauptprogramm
    
    
    'Pro Sekunde ein Aufruf
    Timer_irq: //Subroutine 
    Timer1 = Timervorgabe // Timer1 mit Wert laden 
    Impulseprosekunde = Zaehlerirq0 // irgendwas rechnen
    Zaehlerirq0 = 0 // Var=Wert
    Return // Zurück zum Hauptprogramm
    
    ######################################
    Gruß,
    SIGINT

  7. #17
    Erfahrener Benutzer Roboter Genie Avatar von UlrichC
    Registriert seit
    14.11.2005
    Beiträge
    1.043
    Es liegt doch auf der Hand ...
    jemand der C Programmiert kann Bascom zumindest lesen (weil Text).
    Vorraussetzung für C ist sogar das man Bascom zumindest versteht und interpretieren kann.

    Oben musste stehen "Such idi der mir Fleißarbeit abnimmt".
    Ich zweifle an dessen C-Kenntnisse wenn er das nicht übersetzt bekommt

    Schöne Grüße

  8. #18
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Hmm,
    es stellt sich die Frage, ob der Stefan dieses eine Programm braucht,
    sprich ein Drehzahlmesser und fertig, oder ob allgemein Programmieren lernen will.
    Wenn nur ein Drehzahlmesser gefragt ist, würde ich mir die kostenlose Version von Basic runterladen,
    kompilieren, flashen, fertig.

    Wenn es darum geht µC allgemein kennezulernen und noch C dabei zu lernen würde ich mit Blinklicht anfangen.

    Und wenn es sich darum dreht das eine Programm in C umzusetzen, aus welchem Grund auch immer würde ich das in der Jobsuche schreiben, es findet sich sicher jemand, der gerne für einen Mega16-32 oder so das für Dich übersetzt.

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress