-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Anfängerfrage Bascom (wechsle gerade von AVRco)

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    12.04.2008
    Beiträge
    21

    Anfängerfrage Bascom (wechsle gerade von AVRco)

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo,
    ich habe mir egrade die Demoversion von dascom geladen und werde sie mir wohl auch kaufen da ich die Nase von AVRco Pascal voll habe.
    Das Forum ist Schrott die Amdin dort hochnäsig, und 1000€ ausgeben nur für Hobbyprogrammeirung ist mehr als dumm!!!
    Und mit der Mega (Version ist man derart eingeschränkt, das viele meienr Projekte nie umgesetzt wurden weil einfach die Motivation durch Erweiterbarkeit fehlte!!
    Daher muss ich leider sagen habe ich dadurch das ich mich mit AVRco beschäftigt habe sehr viel ksotbare Zeit verschwendet.

    NUN zu meiner Frage
    Durch einen Umstieg ist man immer einige Sachen gewphnt die man gerne beibehalten möchten.
    Bei AVRco klickt man bei einem neuen Projekt einfach die CPU, das Display etc pp an und dann steht das Code Grundgerüst.
    Ich finde zwar, wie ich das alles bei Bascom eisntlelen kann aber wenn ich dann auch neu klicke kommt eine leere Seite.
    Mache ich was falsch oder gibt es diese zugegeben nicht unbedingt notwendige Funtkion nicht?

    UND

    Bei AVRCo gab es einen Befehl/Procedure namens ONSystick .....
    Alles innerhalb dieser Procedure wurde unabhängig vom restlichen programm immer bei einem Systick, der voeingestellt werden konnte(z.B. 10ms) aufgerugen.
    Dieses ist z.B. notwendig bei einer Akku Kapazitätsanzeige um genau messen zu können.
    Gibt es so etwas bei Bascom auch.
    Ich schmöcker noch ein wenig im Bascom Handbuch.
    Bin aber noch ziemlich am Anfangund wollte schon mal ein enig drauflos programmieren.

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    Der Systick hat nix mit Bascom zu tun,
    sondern mit dem
    verwendeten Controller.
    Mir ist jetzt aber auch kein AVR
    bekannt, der nicht mindestens einen
    8-Bit Timer mitbringt. Viele haben
    auch 1 oder mehr 16-Bit Timer und die
    können sog. Timerinterrupts erzeugen, die
    genau Deine beschriebene Funktion bilden.

    Einen Codegenerator an sich gibts in Bascom
    nicht, man kann aber viele Einstellungen in
    den Konfiguration Reitern vornehmen, auch wenn ich
    das nicht für sinnvoll halte und die entsprechenden
    Anweisungen lieber in den Code schreibe, der wird
    dann später besser lesbar.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    48
    Beiträge
    1.254
    Hallo corado,

    die Amdin dort hochnäsig
    das habe ich auch schon leidvoll erfahren müssen...

    Daher muss ich leider sagen habe ich dadurch das ich mich mit AVRco beschäftigt habe sehr viel ksotbare Zeit verschwendet.
    das glaube ich nicht, Programmierung, egal welche Sprache, schult den Geist.

    Bei AVRco klickt man bei einem neuen Projekt einfach die CPU, das Display etc pp an und dann steht das Code Grundgerüst.
    Ich finde zwar, wie ich das alles bei Bascom eisntlelen kann aber wenn ich dann auch neu klicke kommt eine leere Seite.
    Mache ich was falsch oder gibt es diese zugegeben nicht unbedingt notwendige Funtkion nicht?
    Es gibt bei Bascom zwar die Einstellungen für Prozessor etc. im Menu und das funktioniert auch, aber:
    Wenn du deinen Code mal jemand anderem zeigst oder selber nach einer Weile reinschaust, weißt du nicht mehr, welche Einstellungen gemacht wurden. Deshalb ist es besser, den Kopf immer einzutragen.
    Ich hole mir immer ein Programmgerüst für ein neues Projekt aus einem alten, so in der Art:
    Code:
    $crystal = 125000
    $regfile = "m88def.dat"
    
    $hwstack = 32                                               
    $swstack = 32                                              
    $framesize = 16
    'hier LCD, Timer, ADC, Interrupts etc.
    'hier Variablen definieren und initialisieren
    do
    'Hauptprogramm
    loop
    End
    'IRQs und Subroutinen
    Den Systick mußt du dir mit einem Timer selber bauen.

    Gruß, Michael

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    42
    Beiträge
    1.140
    Mal eine kurze Frage zwischendurch, ohne jetzt der Bascom-Fraktion auf den Fuß treten zu wollen:
    Wieso nimmst Du nicht C?
    Da hast Du eine komplett kostenlose IDE, guten Support in diversen Foren und erlernst eine sehr viel verbreitetere Programmiersprache als Bascom.

    Ich will Dich jetzt nicht von Bascom abhalten, mich würden nur mal die Gründe interessieren, die für Bascom sprechen...

    Gruß,
    askazo

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    12.04.2008
    Beiträge
    21
    Weil ich schnell ein fertiges Ergenbnis haben will.
    In ist das für Freaks sichre auch möglich, aber wenn ich alle jubeljahre mal was baue soll es schnell gehen, und die Programmierung nicht mehr auf halten als die restiliche Planung des Projekts.
    Als ich ganz am Anfang meiner Atmel Versuche mit GCC mal ein Display ansteuern wollte verlor ich doch recht schnell die Lust daran, weil es nicht klappte.
    Mit AVRco hatte ich mit einer reinem Prorammierzeit als Anfänger von wenigen Minuten meinen ersten TExt auf dem Display! Bei Bascom scheint es ähnlich einfach zu sein.
    Auch existieren hier unendlich viele Libs.
    Bei GCC finde ich enig offizielle und ich kan mir vorstellen das viele ihre libs nicht weggeben wollen, weil man solle es ja sleber machen und nicht nur abschreiben!!!
    Aber wie schon geasgt, will ich lediglich ein schnelles Ergebniss.
    ICh habe mit dem Fahrzeug für das diese ganzen basteleien sind mehr als genug zu tun, so das ich mir diese Tipperei sparen kann

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    12.04.2008
    Beiträge
    21
    ach ja, und ich hatte letztes mal ewig gebraucht einen Amperestundenzähler zu schreiben mit Pascal weil ich das mit den Floats nicht hinbekommen hatte.
    Ist natürlich jetzt ultraleicht nachdem ich weiß wie,
    mit
    a := word(daten); 'AVRco pascal wobei a Typ Float ist
    a = daten 'Bascom wobei a Typ Float ist und Daten word

    wie ginge das in c??
    Da ist sowas sicher nicht mal eben in eienr Zeile erledigt außer mit kryptischen abkürzungen-oder?

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    12.04.2008
    Beiträge
    21
    Wenn ich mir diese beiden beispiele ansehe merkt man das e sohne große Einarbeitung nicht geht

    Code:
    Bascom
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 1000000
    
    Config Portc.0 = Output 'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C)
    
    Do
    Portc.0 = 1 'Pin wird auf High, also 5V geschaltet
    Waitms 100
    Portc.0 = 0 'Pin wird auf Low, also 0V geschaltet
    Waitms 100
    Loop
    
    End



    c
    Code:
    #include <avr/io.h>
    #include <util/delay.h>
    
    int main(void){
         DDRC=1<<PC0;
         while (1) {
             PORTC=1<<PC0;
              _delay_ms(100);
             PORTC&=~(1<<PC0);
              _delay_ms(100);
         }
         return 1;
    }
    Der basic code ist für jeden der sich ein wenig mit programmierung beschäftigt hat, verständlich, bei dem C code hört es bei mir hier auf:
    PORTC&=~(1<<PC0);

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    63
    Beiträge
    622
    Hi,

    ... bei dem C code hört es bei mir hier auf: PORTC&=~(1<<PC0);
    die Schuld liegt bei mir. Natürlich hätte man das auch (funktioniert identisch, ist aber "nicht so sauber" geschrieben) so schreiben können:

    Code:
    #include <avr/io.h> 
    #include <util/delay.h> 
    
    int main(void){ 
         DDRC=1; 
         while (1) { 
             PORTC=1; 
              _delay_ms(100); 
             PORTC=0; 
              _delay_ms(100); 
         } 
         return 1; 
    }
    Ich komme aus dem Assemblerland (habe in den 70ern noch "handassembliert") und komme mit "C", nicht aber mit BASIC und seinen Dialekten klar. Suum cuique.

    Gruß

    Fred
    Only entropy comes easy. - Anton Checkhov

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    12.04.2008
    Beiträge
    21
    naja, und genau hier sehe ich das Problem.
    Die Leute die GCC nutzen sind halt meißt recht Firm.
    Wenn ich da nicht weiterkomme gibt das ein Gemetzel
    Bei Bascom sitzen nur so Trofnasen wie ich
    Da wird es einem auch Haarklein erklärt.

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    42
    Beiträge
    1.140
    Zitat Zitat von corado
    ach ja, und ich hatte letztes mal ewig gebraucht einen Amperestundenzähler zu schreiben mit Pascal weil ich das mit den Floats nicht hinbekommen hatte.
    Ist natürlich jetzt ultraleicht nachdem ich weiß wie,
    mit
    a := word(daten); 'AVRco pascal wobei a Typ Float ist
    a = daten 'Bascom wobei a Typ Float ist und Daten word

    wie ginge das in c??
    Da ist sowas sicher nicht mal eben in eienr Zeile erledigt außer mit kryptischen abkürzungen-oder?
    In C sieht's fast genauso aus:
    a = (float)daten;

    Natürlich steht und fällt in C auch alles mit den Bibliotheken - Wie bei jeder anderen Programiersprache auch. Man kann auch so kryptisches Zeug wie
    PORTC&=~(1<<PC0);
    durch eine kleine Definition vernünftig benutzbar und lesbar machen.
    Ich habe z.B. in jedem C-Projekt (u.a.) folgende 3 Definitionen drin:
    Code:
    #define SetBit(ADDRESS,BIT)        ((ADDRESS) |= (1<<(BIT)))
    #define ClrBit(ADDRESS,BIT)        ((ADDRESS) &= ~(1<<(BIT)))
    #define ToogleBit(ADDRESS,BIT)     ((ADDRESS) ^= (1<<(BIT)))
    So muss ich zum setzen eines Ports nur z.B.
    SetBit(PORTE,3);
    schreiben - ganz simpel und einfach.
    Und an Libs gibt es eigentlich reichlich auswahl im Netz. Dass C-Programmierer Ihre Libs nicht rausgeben, weil man's "Selber machen soll", kann ich eigentlich nicht bestätigen. Und ein "Gemetzel" wird's sicher auch nicht geben. Aber gut, wenn man wirklich nur hobby-mässig schnell an Ergebnisse kommen will, ist Bascom natürlich nicht verkehrt.

    Gruß,
    askazo

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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