mikrocontroller.net

Forum: Offtopic Syntax-Highlighting Test


Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
void send_Ports (char numdat, int start, int ende)
{
PORTE = (numdat);
PORTA = (uint8_t) (start<<3) & 0xFF);
PORTB = (uint8_t) (start>>5) & 0xFF);
PORTC = (uint8_t) (start>>13) & 0xFF);
PORTD = (uint8_t) (start>>21) & 0xFF);
PORTA = (uint8_t) (ende<<3) & 0xFF);
PORTB = (uint8_t) (ende>>5) & 0xFF);
PORTC = (uint8_t) (ende>>13) & 0xFF);
PORTD = (uint8_t) (ende>>21) & 0xFF);
}


lichtan();
display_cursor(1,1);
display_string("Hallo ");
send_Ports(0,8192,536862720);
send_Ports(1,16384,536862720);
send_Ports(2,24576,536862720);
send_Ports(3,32768,536862720);

Autor: sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein, da musste nochma ran :-P glugscheiss LOL ;-)

Autor: sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und noch ma :-)

Autor: sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
uuhhhh.... es nimmt form :-)

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na dann, mal sehen:
/*
 * Compile with:
 * gcc -ggdb -O2 -o ee-adr.exe ee-adr.c
 */
#include <stdio.h>
#include <stdint.h>

#define CHECK_OVF    0
#define ENTRIES_TAB1 4000
#define ENTRIES_TAB2 255
#define SIZEOF_TAB1S (32 + 16) / 8
#define SIZEOF_TAB2S (8 + 16) / 8
#define EE_ADR_END   0x0FFF

typedef struct tab1_s {
        uint32_t a;
        int16_t  b;
} tab1_t;

typedef struct tab2_s {
        uint8_t a;
        int16_t  b;
} tab2_t;

tab1_t tab1[ENTRIES_TAB1];
tab2_t tab2[ENTRIES_TAB2];

#define EE_ADR_TAB1 (0)
#define EE_ADR_TAB2 (EE_ADR_TAB1 + (SIZEOF_TAB1S * ENTRIES_TAB1))

#if(((EE_ADR_TAB2 + (SIZEOF_TAB2S * ENTRIES_TAB2)) > EE_ADR_END) &&
CHECK_OVF)
#       error "Tabelsize overflow!"
#endif

int
main(void)
{
        printf("\n\n");
        printf(" - EEPROM starts @%p\n", 0);
        printf(" - Table 1 @%p;\tTable 2 @%p\n", EE_ADR_TAB1,
EE_ADR_TAB2);
        printf(" - EEPROM ends @%p\n", EE_ADR_END);
        printf(" - Overflow: %c\n", ((EE_ADR_TAB2 + (SIZEOF_TAB2S *
ENTRIES_TAB2)) > EE_ADR_END) ? 'Y' : 'N');
        
        return 0;
}

Und hier geht der Text weiter...

Autor: sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sauber

wenn ich pingelig sein darf...
am ende fehlt der strich, der den rahmen abschliesst...
aber das nur pingelig ;-)

sieht aber an sich toll aus :-)

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
mit Firefox bist Du auf dem richtigen Weg. Sieht schon mal gut aus.

Aber mit Opera geht da garnichts. Da war den Quellcode nur teilweise zu
sehen.

MfG
Dieter

Autor: ---- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gute Idee und Fortschritt - aber bei der Erklärung zum Feature auch
gleich drauf hinweisen, daß nicht kilometerlange Sourcen hier gepostet
werden sollen...

Mit IE6 soweit alles ok - außer das "so geht's"-Fenster ist zu klein
und läßt sich nicht skalieren. D.h. man kann den Text nicht komplett
lesen.

----, (QuadDash).

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.include "4433def.inc"     ;bzw. 2333def.inc

.def temp = r16

         ldi temp, RAMEND  ;Stackpointer initialisieren
         out SPL, temp

         rcall sub1        ;sub1 aufrufen

loop:    rjmp loop


sub1:
                           ;hier könnten ein paar Befehle stehen
         rcall sub2        ;sub2 aufrufen
                           ;hier könnten auch ein paar Befehle stehen
         ret               ;wieder zurück

sub2:
                           ;hier stehen normalerweise die Befehle,
                           ;die in sub2 ausgeführt werden sollen
ret                        ;wieder zurück

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@----, (QuadDash)

Korrekt! Das Highlighting soll bei Erklärungen zu "einigen wenigen
Zeilen Code" dazu beitragen, den Code besser lesen zu können. So fasse
ich das jedenfalls auf! Quellcode als solcher gehört in Anhänge ;)

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#test //c

Autor: Rufus T. Firefly (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@----: Die Größenverkrüppelung des "so geht's"-Fensters liegt am
Javascript; der sowieso ratsame Firefox bietet die Möglichkeit,
Javascript solchen Unfug zu untersagen (dann kann wenigstens mit dem
Anfasser unten rechts das Fenster vergrößert werden).

Ich will Andreas in keiner Weise kritisieren; (Also, Andreas, bitte
weghören!) aber mir ist wirklich unklar, was sich "Webdesigner"
eigentlich dabei denken, wenn sie dem Anwender mit ihren Webseiten
bescheuerte Fenstergrößenvorgaben machen.
Ich habe einen vernünftig auflösenden Bildschirm, ich muss nicht in
einem Briefmarkenfenster scrollen!
(So, Andreas, jetzt darfste wieder)

Nähere IMHO sinnvolle Firefox-Einstellungen siehe Anhang
(zu dem dargestellten Fenster gelangt man über
"Extras->Einstellungen", links "Web-Features" auswählen, dann den
Knopf "Erweitert" klicken, der rechts neben der Checkbox "JavaScript
aktivieren" steht)

Autor: Simon Küppers (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss man irgndwelche Tags verwenden ?

Hm.. test:

#include <stdio.h>
#include <stdint.h>
main(void)
  {
    while(0){
    }
  }

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Syntax-Highlighter stammt nicht von mir ;)

Autor: Simon Küppers (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kratz

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Simon: klick mal auf das Fragezeichen ueber dem Code.

Autor: Simon Küppers (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Toll :P
Grad hab ich schonmal draufgeklickt. Stand nur irgndein Copyright
Kram.

Nungut, wenns jetz geht ;)

C_Code(void)
{
  while(0) 
)
}

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit Opera klappts garnicht.

Überigens solltest du dich an den von dir gewählten Doctype halten. 220
Fehler beim validieren ist doch ein bisschen über dem Limit. Vielleicht
klappts dann auch besser mit der Darstellung in anderen Browsern.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, mit Opera funktioniert's bislang nicht, das ist bekannt. Mit den
Validierungsfehlern hat das aber nichts zu tun.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da waren auch 2 einzelne Kommentare, war etwas schlecht formuliert. Hab
die Fehler mal durchgeschaut und die scheinen alle nur trivial zu sein,
gut ist das leider trotzdem nicht.

Ich hab mal nachgeschaut und so weit ich es verstanden habe muss ein
'textarea' immer innerhalb eines Forms sein. Das scheint bei deinem
Code nicht der Fall zu sein. Evtl mal ein Dummy-Form drumherum setzen
und schaun, obs dann in Opera klappt

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum ist die Seite denn jetzt plötzlich breiter als eine normale
Bildschirmseite?

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal eine fehlerhafte Verschachtelung testen (sorry im voraus, falls was
überhaupt was passiert):
// vhdl-code
[c]
// c-code
// vhdl-ende
[/c]
// c-ende

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, merkwürdig!
Auf einem anderen Rechner ist alles in Ordnung.
Da muss ich wohl mal die Einstellungen im FireFox prüfen.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na gut, dann werde ich in Zukunft meinen ganzen Code nicht mehr in den
Anhang packen.

Was ein Schwachsinn, warum braucht man bei wenigen Zeilen Code ein
Highlighting? Naja, jedem das seine.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Schwachsinn" beschreibt den Inhalt deines Postings recht gut :)

Autor: Malte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Interessant wäre noch eine Funktion, dass Quellcode-Anhänge auf Wunsch
mit Syntax Highlight angezeigt werden könnten.
Bezüglich der Fensterbreite: Dieser Thread wird bei mir zu breit
angezeigt. Bei:
http://www.mikrocontroller.net/forum/read-2-205156...
ist die Breite aber richtig.
Am meisten stört mich jedoch dass das Scrollrad der Maus nicht mehr zum
Scrollen verwendet werden kann wenn sich die Maus auf dem Quelltextfeld
befindet. Ansonsten betrachte ich das Highlighting als gute Idee.

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Am meisten stört mich jedoch dass das Scrollrad der Maus nicht mehr
>zum Scrollen verwendet werden kann wenn sich die Maus auf dem
>Quelltextfeld befindet.

Das kann ich nicht bestätigen.

Aber es gibt noch dickere Probleme. Vermutlich wird erst der gesamte
Text im Eingabefeld für einen neuen Beitrag durch die Forensoftware
gejagt und danach gespeichert (nach Andeutungen von Andreas ist das
meine Vermutung). Zeilenumbrüche im Code und auch das Unterstreichen
im Code gibt seltsame Effekte:
/* Hier ist noch alles Normal */

const char pChar PROGMEM = 0xAA; /* Hier auch */
const char pChar __attribute__ ((section(.epprom))) = 0xAA;

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte unbedingt daran denken, daß auch animierte GIFs eingefügt werden
können. Ich will Smilies hüpfende Smilies.

@Alex
Jeder hat seine Meinung.

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jens:

Du darfst natürlich Deine eigene Meinung haben, aber Du solltest doch
nicht gleich alles, was mal als Erweiterung eingebracht wird und Dir
nicht in den Kram passt, als "Schwachsinn" abwerten. Wie immer macht
auch hier der "Ton" die Musik :)

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Übrigens:

http://www.mikrocontroller.net/forum/read-2-204279...

Das ist eines der besten Beispiele, warum ich Syntaxhighlighting
befürworte! So liesse sich das ganze viel besser lesen:
int
main(void)
{
  DDRB = (1<<DDB0);
  PORTB = (0<<PB0);
  wert_alt = 5000;
  TCCR0 = (0<<CS02) | (1<<CS01) | (1<<CS00); //Vorteiler 64
  TCNT0 = (255-5000);                        //Timer vorladen
  TIMSK = (1<<TOIE0);                        //Interrupt enablen
  sei();
  for(;;)                                    //ever
  {
  }
}

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@OldBug

Ja ja, hast ja recht. Eigentlich ist das Highlighting ne verdammt gute
Idee und es wurde echt Zeit, daß es eingeführt wird.

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... im übrigen zwingt einen ja niemand dazu, Codefragmente mit den
entsprechenden Tags zu versehen.
Das ist ja das schöne, daß Andreas dieses Feature als *kann*-Option
hier eingebaut hat.

Also kann man auch konservativ nicht-gehighlighteten (argh!) Quelltext
hier veröffentlichen.


Dabei fällt mir auf, daß für den formatierten Sourcecode eine andere
Schriftart als die für den normalen Text verwendet wird - ich habe
meinen Browser instruiert, für "feste Breite" die Schriftart "Andale
Mono" zu verwenden, die lässt eine eindeutige Unterscheidung von 0 und
O (Null und Oh) zu.

Der formatierte Sourcecode verwendet aber anscheinend eine Courier -
und die ist diesbezüglich unpraktisch.

Könnte es sein, daß das Sourcecodeformatier-Skript da eine ungeschickte
Fontcodierung (in Ermangelung eines besseren Ausdrucks so genannt)
verwendet?

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich finde das schon sinnvoll.

Mal testen:
void lcd_status_am(void)
        {
        DATA_DIR_IN();          // Port 2 als Eingang
        LCD_CD_H();             // Commando High
        LCD_RD_L();             // Read Low
        LCD_CE_L();             // Chip Enable Low
        LCD_STATUS = LCD_READ;  // Status lesen
        LCD_CE_H();             // Chip Enable High
    LCD_RD_H();             // Read High
        LCD_STATUS &= (0x08);   // Bits ausmaskieren
        }

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke fuer den Hinweis, ich habe die Schrift geaendert.

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klasse!

Ein Riesen-Dankeschön an Andreas!

Autor: Konstantin Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na toll, bei mir mit Opera sehe ich gar nichts :-(

nur Fehlermeldungen:


http://www.mikrocontroller.net/wikisoftware/index....
Event thread: BeforeScript
Syntax error while loading: line 3 of linked script at
http://www.mikrocontroller.net/wikisoftware/index....
:
&lt;Mikrocontroller.js&gt;
--^

http://www.mikrocontroller.net/wikisoftware/index....
Event thread: BeforeScript
Syntax error while loading: line 3 of linked script at
http://www.mikrocontroller.net/wikisoftware/index....
:
&lt;Mikrocontroller.js&gt;
--^


Konstantin

Autor: ...HanneS... (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Mit M$-IE5 wird das auch nix, mit dem feurigen Fuchs geht es aber.

Autor: dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Opera's an die Macht!

Ich hab mit 8.01 da's gleiche Problem :( Schade.

Trotzdem, gut gemacht ;) jedoch werd' ich deswegen nicht auf den
heißen Hennentöter umsteigen.

[mir sind einige Apostrophen hereingerut'scht..., alle bis auf einen
sind falsch]

Autor: sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hier mein dankeschön an andreas schwarz...

das nenn ich service :-)

ich finde es ist durchaus bereichend für dein Forum, und danke, das du
dich dem vorschlag so unvoreingenommen hingegeben hast :-)

ich werde das neue feature ab jetzt auf jeden fall nutzen...

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schön, dass das alle so gerne nutzen nur leider funkioniert es immer
noch nicht.
Die Scripte nutzen teilweise nicht standardkonforme Funktionen...

Autor: dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
[A]
 ldi r16, 0
[/A]

[ASM]
 ldi r16, 0
[/ASM]
 ldi r16, 0

Kann man dir bei dem Assembler irgendwie helfen?

Autor: R2D2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum eigentlich so einen komischen Syntax-Highlighter mit Java-Script.
Kann die Forensoftware das highlighting noch selber übernehmen und dann
als ganz normales HTML ausgeben? Dann würd ich als Opera-User vielleicht
auch was sehen.

Autor: test (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm
char test[23];
[C]
#define nichts 1
while(1)
blbla();
[/C]
hmm

Autor: dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir ist grad aufgefallen.. wenn ich die Seite gerade in Opera geöffnet
hab, dann sehe ich für ganz kurz (im ersten Post) den Source-Code,
jedoch nicht gehighlighted (morgen gibts nen Thread, wegen Denglisch..
oder gibts den schon.. ;) ) -hervorgehoben-.
Das liegt vielleicht auch daran, dass ich vorher "sofortiger
Seitenaufbau" eingestellt hab.. sonst stands (Standard) auf 1sek.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das liegt eher daran, dass das Javascript kurz braucht, bis es den
eigentlichen Inhalt unsichbar macht und was eigenes drüberlegt. Ich bin
auch für eine (funktionierende) serverseitige Lösung, denn so ist das
auch nicht das Wahre...

Autor: Rayden (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wolle ma mal testen  g
T E S T

Autor: Rayden (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aha?
weiß ja nicht wie´s bei euch ist, aber ich kann meinen code nicht sehen
den ich gepostet habe ...

Autor: Malte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich sehe auch keinen Code in deinem Posting...

PS: Wieso wird der Autor Name nicht mehr Fett geschrieben?

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
im HTML Code steht das folgenede, sollte also gehen. aber bei mir
vermurkst es nur die Darstellung ein wenig...

<pre>wolle ma mal testen  <b>*g*</b><textarea rows="10" cols="70"
name="code" class="c">T E S T
</textarea></pre>

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich währe (auch wegen der gefahr, das ganze programme im artikel
eingefügt werden) für einen iframe, der auf eine bestimmte größe
vordefiniert ist und den Sourcecode enthält.
so kann man schnell dran vorbeiscrollen, wenn einem der quellcode nicht
interessiert und doch den quellcode ansehen.
zusätzlich habe ich in einem anderen forum (delphi) einen button
entdeckt, mit dem man die 'kleine' scrollbox so vergrößern lassen
konnte, das man den ganzen Quellcode auf einmal sehen konnte.

die serverseite lösung unterstütze ich ebenfalls.

aber ein dickes dankeschön, and andreas, wegen dem forum und der
stetigen erweiterung, mit so allem möglichen!

Autor: Rayden (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab mir jetzt mal das ganze im IE angesehen, und da siehts überhaupt
anders aus:
die schriften sind anders, die frames in denen die codes stehen sind
komplett verschoben, und bunt ist auch nichts mehr.
auch sehe ich mit dem IE meinen test-code.

ich verwende den firefox - vieleicht liegts daran!??!

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Henning:

Tut mir Leid, aber genau das fände ich furchtbar. Es ist mehr als
nervtötend, wenn man bei Code, der größer ist als 2-3 Zeilen immer
zuerst auf "Codebox vergrößern" klicken muss. Code gehört zum
Posting, daher könnte man genausogut argumentieren, dass man den
normalen Beitrags-Text zuerst versteckt und erst auf Klick die
restlichen Zeilen anzeigt.

(Beinahe) ideal finde ich es so wie bei diesem Forum:
http://www.c-plusplus.de/forum/viewtopic-var-t-is-...
Dort ist es so, dass überbreiter Code das Layout trotzdem nicht
zerschießt. Das funktioniert dort übrigens ohne IFrame, mit dem
standard-konformes HTML unmöglich werden würde.

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm, mein gegenbeispiel:
eines dieser popigen phpBB boards, aber speziell die lösung mit dem
quellcode finde ich gut. Wie das hier gemacht wurde hab ich mir nicht
mehr genau angeschaut, aber ich finde das prinzip recht praktisch.
http://www.delphipraxis.net/topic59154_listbox+bil...

standart mäßig ist das ganze übrigens ausgeklappt, obwohl ich finde,
das es ab 50 Zeilen automatisch zusammengeklappt sein sollte.
wenn das ganze zusammengeklappt ist, dann bitte auf etwas, in dem man
noch lesen kann, 20 zeilen gehen in ordnung

Autor: R2D2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Code > 50 Zeilen gehört eh in den Anhang. Chris' Vorschlag gefällt mir
sehr gut.

Autor: asdf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
int main()
{
  return 64;
}
int main()
{
  return 64;
}

Autor: asdf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
int main()
{
  return 64;
}
bla bla
int main()
{
  return 64;
}

Autor: asdf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bla bla
int main()
{
  return 64;
}

bla bla
int main()
{
  return 64;
}

bla bla

Autor: asdf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
^
|
Da stimmt was nicht.

(Benutze Firefox 1.0.4 auf Linux 2.6.12 auf x86)

Autor: fränkie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm klappt das auch mit VHDL???

Mal schauen
entity Taktgenerator is
    Port ( rst            : in std_logic;
           clk40     : in std_logic;
           clk2Mhz     : out std_logic);
--         clk1khz     : out std_logic;
end Taktgenerator;
architecture Behavioral of Taktgenerator is
--signal teiler_1khz     : integer range 39999 downto 0;
begin
process (clk40, rst)  -- Erzeugung des 2 MHz Takt
variable teiler_2Mhz     : integer range 19 downto 0;

Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hehe bei mir funzts zwar perefekt :-),
Aber für eine Lösung Serverseits wäre die funktion highlight_file in
php
sicher interessant. Ich hab mir mal schnell ein mini Script
gemacht und mal raufgeladen, die Farben sind allerdings für php...
um die "normalen" für C zu bekommen müsse man dann wohl oder übel
selbst so ein Syntax Highlighter machen... :-(

Naja hier mal das Beispiel mit dem php befehl:

http://www.benjenkins.co.uk/mef/electronic/highlig...

Autor: Henning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist aber (leider ?) mittlerweile nen ruby board, ohne php

zumindest, wenn ich das recht in erinnerung habe

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss auch nocmal was testen, weil es sich in letzter Zeit ein wenig
häuft...
/* erster Highlighter */
/* zweiter Highlighter */
/* dritter und... */
/* vierter, */
/* fünfter */
/* letzter */

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Komische Sache...
/* eins */

Und nocheiner:
/* zwei */

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da scheint wohl ein Fehler im Parser zu sein!?

Autor: Kalle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich versuchs auch mal...
void main(void)
{
if(a==b)
a=21;
}
Hmm, jetzt Text

Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Da scheint wohl ein Fehler im Parser zu sein!?

hmm ja scheint fast so, dass wenn nach einem / ein [folgt, dieses nicht
ausgewertet wird.
folglich müsste das auch scheifgehen:

/* blabla, c kommentar halt, ohne syntaxhighlighting*/

/*so nun aber richtig*/

main

{

}

Autor: Nik Bamert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm nein scheint nur am Ende zu sein

falls die Kombination

*/[/c] auftritt, funzts net...

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nö, zweimal highlighten in einem Beitrag geht nicht...

Autor: Hias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Test
[asm]
ldi r16,0x00
[\asm]

[assembler]
ldi r16,0x00
[assembler]

testende

Autor: Hias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noch ein test

[assembler]
ldi r16,0x00
[\assembler]

ende

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich spende einen Slash (/)!
ldi r16, 0xAAFFE

Autor: Hannes Lux (hannes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Schade eigentlich...

...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Kann auch anders aussehen.

Firefox 1.0.4 (bin noch nicht zum Update gekommen, fällt mir da auf)
unter XP.

Autor: Jens D. (jens) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PB1 = 1;

..
PB1 = 0;

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rufus:

Ich nutze den Firefox für einige problematische Webseiten auch.

Das Forum möchte ich wegen der Mailbenachrichtigung mit dem
Standardbrowser besuchen (Links in den Mails). Firefox möchte ich aber
nicht als Standardbrowser haben, da ich meine Fotoalben (mit Audio und
MIDI) in HTML erstelle und mit dem Standardbrowser aufrufen möchte. Der
IE macht das selbst in einer Uraltversion ganz gut, für Firefox sind
Plugins erforderlich. Und das Plugin "Apple-Quicktime", das für MIDI
benötigt wird, ist so systemhungrig, dass die MIDIS nur stotternd
wiedergegeben werden (Laptop Toshiba SP4270, 500MHz, 320MB RAM). Mit IE
klappt das aber gut, selbst auf einem alten 386er.

Was ich etwas schade finde, ist die Tatsache, dass hier versucht wird,
Features zu implementieren, die einen Browser-"Glaubenskrieg"
entfachen können, da sie nicht auf allen Plattformen funktionieren.
Wenn es nur "nicht funktioniert" ist es ja noch in Ordnung, wenn aber
der Bildschirmaufbau zerrissen wird, dadurch das Fenster viel breiter
als der Bildschirm wird und man immer hinundher scrollen muss, dann
wird das Ganze lästig. Das tolle an diesem Forum war/ist ja neben der
Fachkompetenz vieler Teilnehmer auch die sachliche Aufmachung ohne
unnötigen Schnickschnack.

Wenn es einen Weg gibt, dass die Syntaxhervorhebung den Seitenaufbau
auf anderen Browsern nicht verunstaltet (auch wenn weder der Rahmen um
den Code noch Farben dargestellt werden sollten), dann bin ich dafür.
Wenn man aber gezwungen wird, einen bestimmten Browser zu benutzen,
dann finde ich das nicht so toll. Mir ist bewusst, dass es sich hier um
eine Testphase handelt und nicht um die Endversion. Deshalb möchte ich
meine Meinung nicht als "Meckerei" verstanden wissen, sondern als
Hinweis.

Übrigens:
Ist das Syntax-Highlighting auch für Programmcode im Anhang geplant?
Dort wäre es doch eigentlich bedeutend nützlicher. ;-)
Oder soll der Anhang wegen Copy&Paste "unbeschädigt" bleiben?

Nunja, "brauchen" tu ich das Highlighting nicht. Wenn es aber das
Layout nicht verstümmelt, dann befürworte ich es. Ansonsten war es ein
netter Versuch, wie es nunmal im Sinne des technischen Fortschritts
notwendig ist.

Bit- & Bytebruch...
...HanneS...

Autor: Hias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmal ein Test:

[asm]
ldi r16, 0x00
[/asm]

[assembler]
ldi r16, 0x00
[/assembler]

Autor: Hias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jetz aber:
ldi r16,0x00

wenns jetzt ned geht mag ich nimmer :(

Autor: Michael D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und noch ein test
main (blabla)
        {
        blabla = blabla2
        }


Autor: Michael D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hhmmm...wo ist mein code hin?

Autor: Tobi H. (tobi-) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Kann auch noch anders aussehen.. :-(

Autor: Michael Dr. (xaeralx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie geht das jetzt nun, mit "
"->"
" hauts bei mir nicht hin...

Autor: Michael Dr. (xaeralx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
komisch, eben gings....

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Test...
int
main(void)
{
  return 0;
}
;; comment
.org 0x0

reset:
        ;; and so on...

Autor: Test (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Test

[A]
    ldi r30,0
[/A]

Autor: Test (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Test
   ldi r30,0

Autor: Hannes Lux (hannes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So richtig zufriedenstellend ist das noch nicht...

...

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
IE 5 oder 6?

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
IE5, ungeflickter Bestandteil von WIN98SE, seit 2 Jahren ohne Infektion
im WWW unterwegs (hoffentlich bleibt das so).

...

Autor: Lanius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ein Beispiel:
[c]
//********************************************************************** 
********
//  MSP-FET430P140 Demo - ADC12, Sequence of Conversions
(non-repeated)
//
//  This example shows how to perform A/D conversions on a sequence of
channels.
//  A single sequence of conversions is performed - one conversion each
on
//  channels A0, A1, A2, and A3. Each conversion uses AVcc and AVss for
the
//  references. The conversion results are stored in ADC12MEM0,
ADC12MEM1,
//  ADC12MEM2, and ADC12MEM3 respectively and are moved to
'results[]' upon
//  completion of the sequence. Test by applying voltages to pins A0,
A1, A2,
//  and A3, then setting and running to a break point at the
"_BIC..."
//  instruction in the ISR. To view the conversion results, open a
watch window
//  in C-Spy and view 'results' or view ADC12MEM0, ADC12MEM1,
ADC12MEM2, and
//  ADC12MEM3 in an ADC12 SFR window.

//  Note that a sequence has no restrictions on which channels are
converted.
//  For example, a valid sequence could be A0, A3, A2, A4, A2, A1, A0,
and A7.
//  See the MSP430x1xx User's Guide for instructions on using the
ADC12.
//
//
//                MSP430F149
//             -----------------
//            |                 |
//            |              A0 |<---- Vin0
//            |              A1 |<---- Vin1
//            |              A2 |<---- Vin2
//            |              A3 |<---- Vin3
//            |                 |
//
//
//  M.Mitchell
//  Texas Instruments, Inc
//  January, 2002
//  Adapted for mspgcc by Steve Underwood <steveu@coppice.org>
//********************************************************************** 
********

#include  <signal.h>
#include  <io.h>

static unsigned int results[4];         // Needs to be global in this
example
                                        // Otherwise, the compiler
removes it
                                        // because it is not used for
anything.

int main(void)
{
  WDTCTL = WDTPW+WDTHOLD;               // Stop watchdog timer
  P6SEL = 0x0F;                         // Enable A/D channel inputs
  ADC12CTL0 = ADC12ON+MSC+SHT0_2;       // Turn on ADC12, set sampling
time
  ADC12CTL1 = SHP+CONSEQ_1;             // Use sampling timer, single
sequence
  ADC12MCTL0 = INCH_0;                  // ref+=AVcc, channel = A0
  ADC12MCTL1 = INCH_1;                  // ref+=AVcc, channel = A1
  ADC12MCTL2 = INCH_2;                  // ref+=AVcc, channel = A2
  ADC12MCTL3 = INCH_3+EOS;              // ref+=AVcc, channel = A3, end
seq.
  ADC12IE = 0x08;                       // Enable ADC12IFG.3
  ADC12CTL0 |= ENC;                     // Enable conversions
  _EINT();                              // Enable interrupts

  while(1)
  {
    ADC12CTL0 |= ADC12SC;                 // Start conversion
    _BIS_SR(LPM0_bits);                   // Enter LPM0
  }
  return 0;
}

interrupt (ADC_VECTOR) ADC12ISR(void)
{
  results[0] = ADC12MEM0;               // Move results, IFG is
cleared
  results[1] = ADC12MEM1;               // Move results, IFG is
cleared
  results[2] = ADC12MEM2;               // Move results, IFG is cleared

  results[3] = ADC12MEM3;               // Move results, IFG is cleared

  _BIC_SR_IRQ(LPM0_bits);               // Clear LPM0, SET BREAKPOINT
HERE
}
[/]

Autor: Lanius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
uups
//******************************************************************************
//  MSP-FET430P140 Demo - ADC12, Sequence of Conversions
(non-repeated)
//              
//  This example shows how to perform A/D conversions on a sequence of
channels.
//  A single sequence of conversions is performed - one conversion each
on 
//  channels A0, A1, A2, and A3. Each conversion uses AVcc and AVss for
the 
//  references. The conversion results are stored in ADC12MEM0,
ADC12MEM1,
//  ADC12MEM2, and ADC12MEM3 respectively and are moved to
'results[]' upon
//  completion of the sequence. Test by applying voltages to pins A0,
A1, A2, 
//  and A3, then setting and running to a break point at the
"_BIC..." 
//  instruction in the ISR. To view the conversion results, open a
watch window
//  in C-Spy and view 'results' or view ADC12MEM0, ADC12MEM1,
ADC12MEM2, and 
//  ADC12MEM3 in an ADC12 SFR window.

//  Note that a sequence has no restrictions on which channels are
converted. 
//  For example, a valid sequence could be A0, A3, A2, A4, A2, A1, A0,
and A7.
//  See the MSP430x1xx User's Guide for instructions on using the
ADC12.
//
//
//                MSP430F149
//             -----------------
//            |                 |
//            |              A0 |<---- Vin0
//            |              A1 |<---- Vin1
//            |              A2 |<---- Vin2
//            |              A3 |<---- Vin3
//            |                 |
//
//
//  M.Mitchell
//  Texas Instruments, Inc
//  January, 2002
//  Adapted for mspgcc by Steve Underwood <steveu@coppice.org>
//******************************************************************************

#include  <signal.h>
#include  <io.h>

static unsigned int results[4];         // Needs to be global in this
example
                                        // Otherwise, the compiler
removes it
                                        // because it is not used for
anything.

int main(void)
{ 
  WDTCTL = WDTPW+WDTHOLD;               // Stop watchdog timer
  P6SEL = 0x0F;                         // Enable A/D channel inputs
  ADC12CTL0 = ADC12ON+MSC+SHT0_2;       // Turn on ADC12, set sampling
time
  ADC12CTL1 = SHP+CONSEQ_1;             // Use sampling timer, single
sequence
  ADC12MCTL0 = INCH_0;                  // ref+=AVcc, channel = A0
  ADC12MCTL1 = INCH_1;                  // ref+=AVcc, channel = A1
  ADC12MCTL2 = INCH_2;                  // ref+=AVcc, channel = A2    
  ADC12MCTL3 = INCH_3+EOS;              // ref+=AVcc, channel = A3, end
seq.
  ADC12IE = 0x08;                       // Enable ADC12IFG.3
  ADC12CTL0 |= ENC;                     // Enable conversions
  _EINT();                              // Enable interrupts  

  while(1)
  {
    ADC12CTL0 |= ADC12SC;                 // Start conversion
    _BIS_SR(LPM0_bits);                   // Enter LPM0 
  }
  return 0;
}

interrupt (ADC_VECTOR) ADC12ISR(void)
{
  results[0] = ADC12MEM0;               // Move results, IFG is
cleared
  results[1] = ADC12MEM1;               // Move results, IFG is
cleared
  results[2] = ADC12MEM2;               // Move results, IFG is cleared
   
  results[3] = ADC12MEM3;               // Move results, IFG is cleared
 
  _BIC_SR_IRQ(LPM0_bits);               // Clear LPM0, SET BREAKPOINT
HERE
}

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aufpassen!

Auch der Code innerhalb der Codetags wird zu allererst umgebrochen!
Also: Zeilen immer nur so lang machen daß sie nicht umgebrochen werden
(70 Zeichen).

Autor: Test (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
test
//Test

#include <test.h>

unsigned char test;

void main (void)
{
}

Autor: Konrad Heisig (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Test 123

void nichts(void)
{
    print("Nichts");
}


Test456

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Autor: ...HanneS... Lux (HanneS)
>>Datum: 14.08.2005 02:35

>>IE5, ungeflickter Bestandteil von WIN98SE, seit 2 Jahren ohne
>>Infektion
>>im WWW unterwegs (hoffentlich bleibt das so).

Und da wird behauptet ich sei der enzige der noch mit WIN98se arbeitet
gg

Übrigens bisher auch ohne Probleme :)

Autor: Christoph __ (chris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso wird Code eigentlich auch umgebrochen?
IMHO sollten Codezeilen beliebig lang sein dürfen, da sie ohne
Verfälschung der Semantik nur sehr selten umgebrochen werden können.

http://www.c-plusplus.de/forum/ macht's z.B. vor: Postings sind
Fließtext (begrenzt nur durch die Breite des Browserfensters),
Codezeilen können aber beliebige Länge haben, und zwar ohne das Layout
zu zerschießen. Lange Codezeilen ziehen dort nur den Code-Bereich in
die Länge, nicht das ganze Posting.

Autor: romanua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
       @; clear ISR
       ldr r0, =PIOA_ISR @;debug
       ldr r2,[r0]       @;debug

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur ein Test...
menu:               ;Auswerten der Tasten
 sbrc tfl,tre               ;rechte Taste? nein...
 inc mp                     ;ja, +1
 sbrc tfl,tli               ;linke Taste? nein...
 dec mp                     ;ja, -1
 cbr tfl,(1<<tre)|(1<<tli)  ;Tasten links und rechts sind erledigt
 cpi mp,255                 ;zu weit nach links gerutscht?
 brne pc+2                  ;nein...
 ldi mp,5                   ;ja, mit Menüpunkt 5 weiter machen
 cpi mp,9                   ;zu weit nach rechts gerutscht?
 brne pc+2                  ;nein...
 ldi mp,1                   ;ja, mit Menüpunkt 1 weiter machen
menujump:           ;Menüpunktaufruf
 ldi zl,low(menujmp)        ;Zeiger auf Sprungtabelle
 ldi zh,high(menujmp)
 add zl,mp                  ;Menüpunkt
 adc zh,null                ;dazu
 ijmp                       ;Menüpunkt aufrufen

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch einer...

[asm]
menu:               ;Auswerten der Tasten
 sbrc tfl,tre               ;rechte Taste? nein...
 inc mp                     ;ja, +1
 sbrc tfl,tli               ;linke Taste? nein...
 dec mp                     ;ja, -1
 cbr tfl,(1<<tre)|(1<<tli)  ;Tasten links und rechts sind erledigt
 cpi mp,255                 ;zu weit nach links gerutscht?
 brne pc+2                  ;nein...
 ldi mp,5                   ;ja, mit Menüpunkt 5 weiter machen
 cpi mp,9                   ;zu weit nach rechts gerutscht?
 brne pc+2                  ;nein...
 ldi mp,1                   ;ja, mit Menüpunkt 1 weiter machen
menujump:           ;Menüpunktaufruf
 ldi zl,low(menujmp)        ;Zeiger auf Sprungtabelle
 ldi zh,high(menujmp)
 add zl,mp                  ;Menüpunkt
 adc zh,null                ;dazu
 ijmp                       ;Menüpunkt aufrufen
[/asm]

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm...
Nun, wo es halbwegs funktioniert, müsste man nur noch die Kommandos
erfahren...

8-)

...

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
[MPASM]
menu:               ;Auswerten der Tasten
 sbrc tfl,tre               ;rechte Taste? nein...
 inc mp                     ;ja, +1
 sbrc tfl,tli               ;linke Taste? nein...
 dec mp                     ;ja, -1
 cbr tfl,(1<<tre)|(1<<tli)  ;Tasten links und rechts sind erledigt
 cpi mp,255                 ;zu weit nach links gerutscht?
 brne pc+2                  ;nein...
 ldi mp,5                   ;ja, mit Menüpunkt 5 weiter machen
 cpi mp,9                   ;zu weit nach rechts gerutscht?
 brne pc+2                  ;nein...
 ldi mp,1                   ;ja, mit Menüpunkt 1 weiter machen
menujump:           ;Menüpunktaufruf
 ldi zl,low(menujmp)        ;Zeiger auf Sprungtabelle
 ldi zh,high(menujmp)
 add zl,mp                  ;Menüpunkt
 adc zh,null                ;dazu
 ijmp                       ;Menüpunkt aufrufen
[/MPASM]

Autor: Malte __ (malte) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mal sehn ob es klappt:
const uint8_t end = strlen(textbuff); 

Autor: Freak5 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sbrc tfl,tre              
inc  -1 cbr tfl

Autor: Freak5 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Komando ist
[
c
]
-----------------
[
/
c
]

Nur ohne Enter

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
menu:               ;Auswerten der Tasten
 sbrc tfl,tre               ;rechte Taste? nein...
 inc mp                     ;ja, +1
 sbrc tfl,tli               ;linke Taste? nein...
 dec mp                     ;ja, -1
 cbr tfl,(1<<tre)|(1<<tli)  ;Tasten links und rechts sind erledigt
 cpi mp,255                 ;zu weit nach links gerutscht?
 brne pc+2                  ;nein...
 ldi mp,5                   ;ja, mit Menüpunkt 5 weiter machen
 cpi mp,9                   ;zu weit nach rechts gerutscht?
 brne pc+2                  ;nein...
 ldi mp,1                   ;ja, mit Menüpunkt 1 weiter machen
menujump:           ;Menüpunktaufruf
 ldi zl,low(menujmp)        ;Zeiger auf Sprungtabelle
 ldi zh,high(menujmp)
 add zl,mp                  ;Menüpunkt
 adc zh,null                ;dazu
 ijmp                       ;Menüpunkt aufrufen

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ob die Klammern nun unbedingt eingefärbt werden müssen lasse ich mal
offen. Aber blau eingefärbte ASM-Befehle und grüne Kommentare würden
schon etwas an AVR-Studio erinnern... ;-)

@Freak:
Danke, aber dein Befehl ist für C-Code, hat man mir zumindest im
anderen Thread mitgeteilt. Und C kann ich nicht, dafür bin ich zu
blöd.

...

Autor: Freak5 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich dachte C steht einfach für Code. Deine ASM und CODE Tests haben ja
nicht funktioniert und C wird auch in vielen anderen Foren als
Codemarker benutzt.

C ist genauso leicht wie Asssembler. Nur, dass man für alles eine
Funktion hat, dass vieles noch einfacher ist, man sich viele Funktionen
merken muss und Bitverschiebungen und Zugriffe nicht so bekannt sind(
Ich habe sie noch nie benutzt und vergessen, wie sie gehen, deshalb
programmiere ich auf kleinen µCs nur ASM)

Autor: Tobi H. (tobi-) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C = C-Code
avrasm = asm-Code

Die Einstiegshürde bei C ist schon ein weniger höher. Ist doch trotz
allem eine sehr kryptische Sprache. ASM ist zwar länger und die Lösung
oft komplexer, aber die einzelnen Elemente sind viel viel einfacher.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dafür ist C zunächst einmal C, egal, auf was für einer Maschine.
Natürlich mit Implementierungsunterschieden (Wortbreite etc.,
Spezialitäten wie dem Harvard-Handling für AVR, verschiedene
Compilererweiterungen für Interrupthandling), aber ansonsten immer
gleich.

Assembler verwendet je nach Prozessorfamilie einen völlig anderen
Befehlssatz (halt den des betreffenden Prozessors) und obendrein auch
noch eine je nach Prozessor ziemlich unterschiedliche Syntax.

Wer in C auf einem AVR programmiert, der wird sich mit erträglichem
Aufwand auch an C auf einem ARM gewöhnen können.

Wer in AVR-Assembler programmiert, der wird beim Anblick des
ARM-Assemblers erst mal schlucken.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ihr habt ja alle Recht (jeder auf seine Art), denn ich will da keinen
Glaubenskrieg der Programmiersprachen.

Auf größeren Systemen, die mit Betriebssystemen ausgestattet sind, ist
eine (möglichst portierbare) Hochsprache unabdingbar. C mag die bessere
Wahl sein, ich habe mich mit BASIC angefreundet weil es verfügbar war
(Commodore Plus/4, QBASIC, VB).

Beim AVR nützt mir C nur dann etwas, wenn ich es souverän beherrsche,
wenn also nur der AVR Neuland ist. Das ist bei mir aber nicht der Fall.
Wenn ich nun gleichzeitig die Tücken von C (bzw. der AVR-Lib) und die
Hardwarebesonderheiten erlernen muss, dann ist das etwas viel auf
einmal. Denn Programmierung ist für mich Hobby (ich bin also nicht
beruflich da hineingewachsen) und ich gehöre auch bei Weitem nicht zur
Script-Kiddy-Generation, da geht das Lernen etwas langsamer und
mühsamer vonstatten. Da muss ich mir keine zusätzlichen Probleme in
Form einer komplexen, abstrahierenden schaffen. Ich will nämlich kein
abstraktes Betriebssystem, sondern eine kleine, überschaubare, sehr
konkrete Hardware ansteuern. Daher beschränke ich mich beim AVR auf
Assembler, das ist (für mich) übersichtlicher und nachvollziehbarer.

Klar, ich muss dabei die zu lösenden Aufgaben in kleine Einheiten
zerlegen, aber das bleibt (für mich) halbwegs überschaubar, denn meine
Programme sind recht klein. Ich habe mehr mit Bitschubserei zu tun als
mit Rechnerei. Und da ist ASM für mich der leichtere Weg. Das hat auch
damit zu tun, dass man mit weniger Informationsquellen auskommt, es
gilt halt nur das Datenblatt (wenn man die separate Datei mit dem
Befehlssatz als ausgelagerten Teil des Datenblatts betrachtet). Auch
halte ich es auf einem System mit knappen Ressourcen für besser, wenn
man zu jedem (ASM-)Befehl weiß, warum man das so (und nicht anders)
gemacht hat.

Aber wie gesagt, das sind meine Argumente, die will ich niemandem
aufschwatzen. Jeder soll da seinen Weg gehen...

...

Autor: Matthias Reiter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Test:
#include "uart.h"


#define XTAL_CPU         12288000      /* 4Mhz */
#define UART_BAUD_RATE      56000      /* 9600 baud */



int main(void)
{
    unsigned int c;

    
    /*
     *  Initialize UART library, pass baudrate and avr cpu clock 
     *  with the macro UART_BAUD_SELECT()
     */
    uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,XTAL_CPU) ); 

Autor: test (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sry, für den test:

 for i:=0 to N-2 do
   for j:=0 to N-i-2 do
     if werte[j] > werte[j+1] then begin
       z:=werte[j];
       werte[j]:=werte[j+1];
       werte[j+1]:=z;
     end;
 end;

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sry, für den test:

Mal sehen, ob das klappt:

[basic]
 for i:=0 to N-2 do
   for j:=0 to N-i-2 do
     if werte[j] > werte[j+1] then begin
       z:=werte[j];
       werte[j]:=werte[j+1];
       werte[j+1]:=z;
     end;
 end;
[/basic]

Und mal sehen, wie das mit C-Syntax aussieht:
 for i:=0 to N-2 do
   for j:=0 to N-i-2 do
     if werte[j] > werte[j+1] then begin
       z:=werte[j];
       werte[j]:=werte[j+1];
       werte[j+1]:=z;
     end;
 end;

...

Autor: ??????????? (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heißt das:
#inlcude <irgendwas.h>

void cfunction(integer bla)
{
 printf("haeh %i ?", bla);
}
oder wie ????????

Autor: ??????????? (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Boah,
sogar die vertippers werden umgestzt ;)
Cooole Sache ;)
Danke !!!

Autor: Christoph __ (chris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
[python]
for i in range(0, 100):
    print i
[/python]

Einen Versuch war's wert.

Autor: nurtest (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
test1

Autor: DSL Nutzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss ich auch mal testen mit:

#inlcude <irgendwas.h>

{
    printf("Hello World");
}

#inlcude <irgendwas.h>

{
    printf("Hello World");
} 

Toll...

Autor: luxx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so was für asm jetzt noch dann wäre es perfekt...

luxx

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wer lesen kann ist klar im Vorteil:

 https://www.mikrocontroller.net/forum/read-7-20551...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wer lesen kann ist klar im Vorteil:

Richtig...
Aber so richtig glücklich bin ich damit nicht. Es sieht zwar schön bunt
aus, die Einfärbungen haben aber (bei AVRASM) weder Sinn noch Verstand.
Weniger ist manchmal mehr. Es würde reichen, zwischen
ASM-Schlüsselwörtern, Kommentaren und dem Rest (Konstanten, Register,
Bezeichner...) zu unterscheiden. Gut fände ich ASM-Schlüsselwörter
blau, Kommentare grün, Rest schwarz. Ich würde aber auch andere Farben
akzeptieren. Nur das was bisher war (ist es vielleicht schon
geändert?), ist zwar Zirkus-bunt, aber keine Syntax-Hervorhebung.
Deshalb nutze ich es auch nicht.

...

Autor: tetser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
-----------------

asdfg

Autor: Micro Mann (micromann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
[c]
test
[\c]

[C]
test
[\C]

Autor: suffix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
[assembler]
ldi r16, 0x00
[/assembler]

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
avrasm

...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail, Yahoo oder Facebook? Keine Anmeldung erforderlich!
Mit Google-Account einloggen | Mit Facebook-Account einloggen
Noch kein Account? Hier anmelden.