Atmega328 - Kennt "case" nicht

Antworten
Mathias
Beiträge: 6162
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 und C/C++ sehe ich rot

Benutzeravatar
theo
Beiträge: 10467
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: 6162
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) 55-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6162
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 und C/C++ sehe ich rot

hum4n0id3
Beiträge: 301
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: 825
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