Datum: 12.07.2005 14:46
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); |
Datum: 12.07.2005 14:55
nein, da musste nochma ran :-P glugscheiss LOL ;-)
Datum: 12.07.2005 15:39
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...
Datum: 12.07.2005 15:45
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 :-)
Datum: 12.07.2005 15:52
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
Datum: 12.07.2005 15:56
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).
Datum: 12.07.2005 15:57
.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 |
Datum: 12.07.2005 16:00
@----, (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 ;)
Datum: 12.07.2005 16:29
@----: 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)
Datum: 12.07.2005 16:35
Muss man irgndwelche Tags verwenden ?
Hm.. test:
#include <stdio.h>
#include <stdint.h>
main(void)
{
while(0){
}
}
Datum: 12.07.2005 16:36
Der Syntax-Highlighter stammt nicht von mir ;)
Datum: 12.07.2005 16:36
Simon: klick mal auf das Fragezeichen ueber dem Code.
Datum: 12.07.2005 16:38
Toll :P Grad hab ich schonmal draufgeklickt. Stand nur irgndein Copyright Kram. Nungut, wenns jetz geht ;)
C_Code(void) { while(0) ) } |
Datum: 12.07.2005 16:44
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.
Datum: 12.07.2005 16:54
Ja, mit Opera funktioniert's bislang nicht, das ist bekannt. Mit den Validierungsfehlern hat das aber nichts zu tun.
Datum: 12.07.2005 17:18
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
Datum: 12.07.2005 20:46
Warum ist die Seite denn jetzt plötzlich breiter als eine normale Bildschirmseite?
Datum: 12.07.2005 22:07
Mal eine fehlerhafte Verschachtelung testen (sorry im voraus, falls was überhaupt was passiert):
// vhdl-code [c] // c-code |
// vhdl-ende [/c] // c-ende
Datum: 13.07.2005 08:14
Hm, merkwürdig! Auf einem anderen Rechner ist alles in Ordnung. Da muss ich wohl mal die Einstellungen im FireFox prüfen.
Datum: 13.07.2005 09:14
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.
Datum: 13.07.2005 09:26
"Schwachsinn" beschreibt den Inhalt deines Postings recht gut :)
Datum: 13.07.2005 09:32
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.
Datum: 13.07.2005 10:19
>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; |
Datum: 13.07.2005 10:36
Bitte unbedingt daran denken, daß auch animierte GIFs eingefügt werden können. Ich will Smilies hüpfende Smilies. @Alex Jeder hat seine Meinung.
Datum: 13.07.2005 10:56
@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 :)
Datum: 13.07.2005 11:02
Ü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 { } } |
Datum: 13.07.2005 11:42
@OldBug Ja ja, hast ja recht. Eigentlich ist das Highlighting ne verdammt gute Idee und es wurde echt Zeit, daß es eingeführt wird.
Datum: 13.07.2005 11:50
... 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?
Datum: 13.07.2005 12:16
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 } |
Datum: 13.07.2005 12:32
Danke fuer den Hinweis, ich habe die Schrift geaendert.
Datum: 13.07.2005 13:05
Klasse! Ein Riesen-Dankeschön an Andreas!
Datum: 13.07.2005 16:41
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.... : <Mikrocontroller.js> --^ 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.... : <Mikrocontroller.js> --^ Konstantin
Datum: 13.07.2005 20:35
Mit M$-IE5 wird das auch nix, mit dem feurigen Fuchs geht es aber.
Datum: 13.07.2005 20:53
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]
Datum: 15.07.2005 20:17
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...
Datum: 15.07.2005 20:57
Schön, dass das alle so gerne nutzen nur leider funkioniert es immer noch nicht. Die Scripte nutzen teilweise nicht standardkonforme Funktionen...
Datum: 16.07.2005 16:08
[A] ldi r16, 0 [/A] [ASM] ldi r16, 0 [/ASM]
ldi r16, 0 |
Kann man dir bei dem Assembler irgendwie helfen?
Datum: 16.07.2005 17:32
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.
Datum: 16.07.2005 20:23
hmm
char test[23]; [C] #define nichts 1 |
while(1) blbla(); [/C] hmm
Datum: 16.07.2005 20:51
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.
Datum: 17.07.2005 00:09
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...
Datum: 17.07.2005 10:57
aha? weiß ja nicht wie´s bei euch ist, aber ich kann meinen code nicht sehen den ich gepostet habe ...
Datum: 17.07.2005 11:03
Ich sehe auch keinen Code in deinem Posting... PS: Wieso wird der Autor Name nicht mehr Fett geschrieben?
Datum: 17.07.2005 11:15
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>
Datum: 17.07.2005 12:27
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!
Datum: 17.07.2005 13:29
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!??!
Datum: 17.07.2005 14:28
@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.
Datum: 17.07.2005 14:57
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
Datum: 17.07.2005 16:44
Code > 50 Zeilen gehört eh in den Anhang. Chris' Vorschlag gefällt mir sehr gut.
Datum: 18.07.2005 00:52
int main() { return 64; } int main() { return 64; } |
Datum: 18.07.2005 00:53
int main() { return 64; } |
bla bla
int main() { return 64; } |
Datum: 18.07.2005 00:54
bla bla
int main() { return 64; } |
bla bla
int main() { return 64; } |
bla bla
Datum: 18.07.2005 00:57
^ | Da stimmt was nicht. (Benutze Firefox 1.0.4 auf Linux 2.6.12 auf x86)
Datum: 18.07.2005 15:03
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; |
Datum: 19.07.2005 02:16
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...
Datum: 19.07.2005 18:28
ist aber (leider ?) mittlerweile nen ruby board, ohne php zumindest, wenn ich das recht in erinnerung habe
Datum: 20.07.2005 10:56
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 */
|
Datum: 20.07.2005 10:57
Komische Sache...
/* eins */
|
Und nocheiner:
/* zwei */
|
Datum: 20.07.2005 10:57
Da scheint wohl ein Fehler im Parser zu sein!?
Datum: 21.07.2005 18:12
Ich versuchs auch mal...
void main(void) { if(a==b) a=21; } |
Hmm, jetzt Text
Datum: 21.07.2005 19:12
>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
{
}
|
Datum: 21.07.2005 19:14
hmm nein scheint nur am Ende zu sein falls die Kombination */[/c] auftritt, funzts net...

