- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 34

Thema: MikroBasic für AVR's - Interessant?

  1. #21
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.11.2005
    Beiträge
    321
    Anzeige

    Praxistest und DIY Projekte
    ach so, hatte ich ganz vergessen, für uns interessierten, die auch ins detail gehen mit dem avr:
    der mirobasic-compiler stellt asm-code für das avr-studio 4.0 und höher her.
    dieser wird auch so original compiliert. für mich eine zusätzliche herausforderung (nicht für die bascomprogrammer), vielleicht für andere auch.

    ein auszug:

    ;************************************************* ********
    ;** Generated by mikroVirtualMachine for AVR - V1.0.0 **
    ;** **
    ;** **
    ;** Date/Time: 23.01.2006 16:40:07 **
    ;** Info: http://www.mikroelektronika.co.yu **
    ;** **
    ;** ASM Code designed for AVR Studio 4.00 **
    ;************************************************* ********


    .nolist
    .include "atmega16.inc" ; may be you have to change filename
    .list


    ;************************************************* ********
    ;** Global Variables **
    ;************************************************* ********
    .dseg
    delays_clock_khz__local_result: .byte 2 ;0
    main_global_local_text: .byte 17
    SPH: .byte 1
    SPL: .byte 1
    STACK_0: .byte 1
    STACK_1: .byte 1
    STACK_2: .byte 1
    STACK_3: .byte 1
    UBRRH: .byte 1
    UBRRL: .byte 1
    UCSRA: .byte 1
    UCSRB: .byte 1
    UCSRC: .byte 1
    UDR: .byte 1
    usart1_usart1_init_local_tmp: .byte 4 ;0
    usart1_usart1_init_param_baud_rate: .byte 4 ;4
    usart1_usart1_write_char_param_data: .byte 1 ;0
    usart1_usart1_write_text_local_data: .byte 1 ;1
    usart1_usart1_write_text_local_i: .byte 1 ;0
    usart1_usart1_write_text_param_uart_text: .byte 2 ;2


    ;************************************************* ********
    ;** Main program **
    ;************************************************* ********
    .cseg
    .org $0
    jmp USART_Test_main
    USART_Test_main:
    USART_Test_main_main:
    LDI R16, 95
    OUT SPL, R16
    LDI R16, 4
    OUT SPH, R16
    LDI R16, 128
    LDI R17, 37
    LDI R18, 0
    LDI R19, 0
    PUSH R19
    PUSH R18
    PUSH R17
    PUSH R16
    IN R28, SPL
    IN R29, SPH
    SBIW R28, 4
    OUT SPL, R28
    OUT SPH, R29
    LD R16, Y+
    CALL usart1_usart1_init
    ADIW R28, 7
    OUT SPL, R28
    OUT SPH, R29
    LDI R16, 8
    USART_Test_L_2:
    LDI R17, 196
    USART_Test_L_1:
    LDI R18, $10



    Castle

  2. #22
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.11.2005
    Beiträge
    321
    hallo, jungerspund.
    dieser microbasic-compiler ist nichts für dich.
    man muss schon interesse für den AVR zeigen , nicht nur für das projekt wo er drinn steckt.
    für die bascomprogrammer ist die herausforderung für den einstieg zu gross.
    wer den AVR dann besser kennt und zeitkritische routinen schreiben möchte oder auch schon einmal nach winavr-c geschaut hat, für den ist der micro-compiler was.
    man darf dann auch z.b. bei solchen befehlen keine angst haben: Adcsr.aden = 1 usw.

    Castle

  3. #23
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.11.2005
    Beiträge
    321
    endlich läuft meine mmc-karte 256mb am AVR16 und microbasic.

    die schaltung für die 3,3v habe ich von ulrich radig auch den rest der verschaltung mit den widerständen für die mmc.

    kann mit einem rutsch immer 512byte lesen oder schreiben.

    es ist eine lib von microbasic. seit 6 monaten Suche ich vergeblich nach einer funktionierenden karte am avr. auch die bascomroutine funktionierte nicht. seit 6 monaten google ich auch schon bei winavr-c, es gibt schon weit über 400 antworten über den betrieb, aber bei 2en funktioniert sie nur mit winavr-c.
    ...echt gut...
    probehalber habe ich mal die daten meiner gameboycam die am AVR betrieben wird zur mmc rübergeschaukelt.

    es geht aber nur immer 512byteweise.
    mit dem tool von microbasic kann ich die karte über die serielle schnittstelle und AVR proggen, z.b. daten die sie sich auf dem pc befinden.

    an diesen schnellen fortschritt der mmc-karte hatte ich nicht mehr geglaubt. sie lag zur zeit immer noch wegen erfolglosigkeit in der schublade.

    Castle

  4. #24
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.11.2005
    Beiträge
    321
    zu der frage der interrupts , hatte ich vorhin nicht erklärt :

    sub procedure Timer_Interrupt0 org $0012
    PORTD = not PORTD ' toggle PORTD
    end sub

    main:
    TIMSK = 1 ' enable interrupt on overflow
    TCCR0 = $05 ' start timer with 1024 prescaler
    SREG.7= 1 ' enable global interrupt

    DDRD = $FF ' portd output
    PORTD = $00 ' clear portd
    end.


    die orgnummer entscheidet den interrupt.
    das gleiche macht winavr_c oder bascom, nur verschleiert mit namen.
    hier kann man den namen frei vergeben.

    an den daten sieht man, das man sich hier auch mit dem datenblatt schlaumachen muss, wie bei winavr_c.

    Castle

    ps: Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 256

    ich zweifle daran, dass sich ein bascomer hier rangemacht hat, um zu erkunden, was sich hinter dieser schlange verbirgt.
    darum wird er nie den AVR verstehen. sondern immer wieder fragen:
    warum läuft der motor mit vollgas nach vorn, warum bewegt er sich nur, warum ruckelt er so, ich habe 255 und er dreht immer noch nicht so hoch usw...

  5. #25
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.12.2004
    Ort
    LEV
    Beiträge
    505
    @super_castle:
    Hi Peter,
    deine Begeisterung für MicroBasic AVR kann ich nicht teilen.
    Ich habe einige der mitgelieferten Beispiele compiliert,
    und der erzeugte Code überzeugt mich überhaupt nicht.
    Er ist ziemlich aufgebläht und wirkt sehr schematisch zusammengestellt
    ohne jede Optimierung.
    Da wirkt ein vergleicbares BASCOM-Compilat schon erheblich kompakter
    und angepasster.

    Du stellst es als Vorteil hin, das man bei MicroBasic gezwungen ist,
    die Hardware-Register des AVR direkt anzusprechen,
    weil entsprechende vordefinierte Routinen für viele Funktionen fehlen. (z.B Interrupts.)
    Das finde ich unfair, denn selbstverständlich lassen sich die Register
    in Bascom genauso einfach auch direkt ansprechen.
    Nur: In Bascom KANN man wenn man will, in MicroBasic MUSS man.
    Da hast du geschickt eine Methode heutiger Politiker kopiert,
    einen Nachteil als Vorteil zu verkaufen. <zwinker>

    Das Bascom keinen ASM-Sourcecode erzeugt, halte ich für keinen
    gravierenden Nachteil. Kann man doch in Bascom sowohl Inline-Assembler
    als auch externe ASM-Dateien mit einbinden.
    Und warum sollte man am compilierten Code eines Basic-Programmes rumbasteln ?
    Da kann man ja gleich selbst in Assembler schreiben.

    Was mir in MicroBasic gut gefällt ist die Dokumentation. z.B der Libraries.

    Ich kann nur jedem empfehlen sich vor dem Kauf von MicroBasic oder
    auch vom Bascom die Leistungsfähigkeit der beiden AVR-Basic-Compiler
    genau zu vergleichen. Es gibt ja von beiden Programmen frei erhältliche Demoversionen.
    Wer ein wenig Assembler versteht, vergleicht am Besten
    mal den erzeugten Code. Dann sollte eine Entscheidung wirklich nicht schwerfallen.

    Gruß Jan

  6. #26
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1
    Ich stimme hier mit JanB auch völlig überein. Ein Compiler wird doch nicht dadurch besser das er bestimmte Dinge nicht kann. Man muss ja die Libary Funktionen bei Bascom nicht nutzen, man kann dort ebenso alles manuell programmieren und die Register ansprechen. Aber man kann halt auch High-Level Funktionen nutzen und so manche Aufgabe sehr bequem und zufriedenstellend lösen.
    Wenn ich die halbe Libary selbst programmieren muss, dann kann ich gleich C nehmen.
    Als kleine Entschuldigung muss man Anmerken das es MicroBasic wohl noch nicht sehr lang gibt. Eine erste Version ist selten ausgereift und wird vermutlich auch noch genug Bugs haben. Ich denke auch, den Compiler muss man sich vielleicht später nochmal anschaun. Aber da die Bascom Entwicklung auch nicht stillsteht, ist es fraglich ob er da ran kommt.
    Aber Doku scheint gut, da stimme ich dem gesagten zu. Nur das reicht halt nicht.

    Gruß Frank

  7. #27
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.11.2005
    Beiträge
    321
    hallo..
    wie ich eingangs auch erwähnte, es nichts für einsteiger die die vertraute "basic-sprache" kennen. wer diese sphäre verlässt und sich in andere welten bewegen möchte, für den ist dieses microbasic. der name microbasic ist eigentlich unglücklich gewählt worden, bzw das wort basic passt da nicht hin.

    wer sich mit winavr-c auseinandersetzt, so wie ich, für den ist die avr-struktur mit der namensgebung kein hindernis mehr.
    da aber dieses c von der syntax her gewöhnungsbedürftig ist, ist das microbasic ein ausweichlösung unter den progsprachen.

    die asm-struktur ist noch aufgebläht, weil die verschiedenen klassen teilweise das gleiche problemteilstück für sich selber noch einmal konstruieren statt von den klassen zu der einen routine zu springen.
    man sieht auch, das es sehr wenig sprungbefehle gibt.
    auch z.b. der "mul"-befehl wird nicht genutzt, stattdessen wird eine eigenene routine produziert die 14-codeteilchen enthalten statt dieses eine wort "mul". aber dieser eingenkonstrukt ist um 30% schneller.
    dadurch ist dieses microbasic 30% schneller, aber die eingebundenen lib sind vom asm-umfang doppelt so gross und daran müssen die leute noch arbeiten. um den falschen frust abzutöten täten die gut daran auch wieder einfache strukturen wie : rc5 timer..., interrupt... usw selbsterklärend reinzunehmen. sonst wird die fangemeinde zu spät übergehen nach microbasic.

    für mich als auch winavr-c-fan fällt dieses nicht schwer.

    wer sich jetzt für die sprache entscheidet, wird mit der sprache wachsen.
    es gibt erst die version 1.0 . wer dafür interesse hat sollte auch jetzt schon mit den vorläufigen unzulänglichkeiten.
    es wird besser, davon bin ich überzeugt, darum progge ich auch mit microbasic.

    ich kenne alle sprachen für den AVR , einige mehr , die anderen weniger. aber keine sprache hat es mit der version 1.0 so perfekt hinbekommen.

    es ist verkehrt den schulanfänger in der ersten klasse gleich in die 3 klasse zu setzen, da geb ich euch recht, wenn ihr sagt, der bascomer ist damit überfordert.

    Castle

  8. #28
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.12.2004
    Ort
    LEV
    Beiträge
    505
    @super_castle
    Hallo Peter,
    der "mul"-befehl wird nicht genutzt, stattdessen wird eine eigenene routine produziert die 14-codeteilchen enthalten statt dieses eine wort "mul". aber dieser eingenkonstrukt ist um 30% schneller.
    Hier provozierst du meinen energischen Widerspruch.
    30% schneller als die Hardware-Multiplikation !!

    Der MUL-Assemblerbefehl das AVR braucht genau 2 Takte für eine 8x8 Multiplikation.

    Bitte zeige und erkläre mir diese "eigene Routine" die schneller ist als der MUL-Befehl.
    Lang kann sie ja nicht sein, wenn sie so schnell ist.

    Das die eingebaute Multiplikationshardware des AVR von MicroBasic nicht genutzt wird
    spricht nicht gerade für diesen Compiler.

    Schöne Grüße an Dich

    Jan

  9. #29
    Erfahrener Benutzer Roboter Experte Avatar von Rage_Empire
    Registriert seit
    10.03.2005
    Ort
    Pforzheim
    Beiträge
    710
    Irgendwie erinnert mich das hier zulangsam an einen Thread, wo es um Fast-Basic ging....

  10. #30
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1
    Zitat Zitat von Rage_Empire
    Irgendwie erinnert mich das hier zulangsam an einen Thread, wo es um Fast-Basic ging....
    Tja!
    Fest steht jedenfalls das User die auf alle Geheimtips, die hier im Forum schon in Sachen Compiler geäußert wurden, vorschnell gehört haben jetzt einige hundert Euro ärmer sind und diverse Entwicklungsumgebungen Zuhause haben.
    Ob die wohl neben der ständig neuen Einarbeitungszeit auch noch ein sinnvolles Programm schreiben konnten?

    Gruß Frank

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests