Atmega328 - Kennt "case" nicht

Antworten
Mathias
Beiträge: 7368
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Atmega328 - Kennt "case" nicht

Beitrag von Mathias »

Code: Alles auswählen

var
  p: byte = 0;

Code: Alles auswählen

    case p of
      0: begin
        n := c div 1000;
      end;
      1: begin
        n := c div 100 mod 10;
      end;
      2: begin
        n := c div 10 mod 10;
      end;
      3: begin
        n := c mod 10;
      end;
    end;
Wen ich obigen Code linken will, kommt folgender Fehler:

Code: Alles auswählen

Project1.pas(24,1) Error: Error while linking
Mache ich es aber mit einem klassischen "if", geht es ohne Probleme:

Code: Alles auswählen

    if p = 0 then begin
      n := c div 1000;
    end else if p = 1 then begin
      n := c div 100 mod 10;
    end else if p = 2 then begin
      n := c div 10 mod 10;
    end else if p = 3 then begin
      n := c mod 10;
    end;  
Weis einer woran, dies liegen kann ?
Mit Lazarus sehe ich grün
Mit Java, Python und C++ sehe ich rot

Benutzeravatar
theo
Beiträge: 11413
Registriert: Mo 11. Sep 2006, 19:01

Re: Atmega328 - Kennt "case" nicht

Beitrag von theo »

Also ich habe echt keine Ahnung, aber was das mit dem Linken zu tun haben sollte, leuchtet erstmal kein Bisschen ein.
Hast du nicht andere Baustellen übersehen?

Mathias
Beiträge: 7368
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Atmega328 - Kennt "case" nicht

Beitrag von Mathias »

Im Anhang mal der komplette Code.
Dateianhänge
7-Segmet_Multiplex.zip
(2.53 KiB) 317-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java, Python und C++ sehe ich rot

Mathias
Beiträge: 7368
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Atmega328 - Kennt "case" nicht

Beitrag von Mathias »

Problem gelöst, schien ein Bug ich Crosscompiler gewesen zu sein.
Ich habe den AVR5 nochmals neu gebaut, jetzt ist das Problem weg.
Mit Lazarus sehe ich grün
Mit Java, Python und C++ sehe ich rot

hum4n0id3
Beiträge: 387
Registriert: So 5. Mai 2019, 15:23

Re: Atmega328 - Kennt "case" nicht

Beitrag von hum4n0id3 »

@Mathias: In der Fußnote, Bei Lazarus sehe ich gün, fehlt meiner Meinung nach ein r.

PascalDragon
Beiträge: 1057
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: Atmega328 - Kennt "case" nicht

Beitrag von PascalDragon »

Mathias hat geschrieben: Fr 1. Jul 2022, 16:37 Wen ich obigen Code linken will, kommt folgender Fehler:

Code: Alles auswählen

Project1.pas(24,1) Error: Error while linking
Du hast es zwar für dich schon gelöst, aber für die Zukunft: bei dieser Fehlermeldung sind meist die Meldungen darüber die interessanten und die blendet Lazarus gern aus. Lass dir also von Lazarus alle Meldungen in dem Fall geben (Rechtsklick auf Nachrichtenfenster -> Kopieren -> Alle/Original Nachrichten in Zwischenablage kopieren).
FPC Compiler Entwickler

Antworten