Torna indietro   Hardware Upgrade Forum > Componenti Hardware > Processori

Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Abbiamo provato Motorola razr fold, il pieghevole a libro con display interno LTPO da 8,09 pollici, Snapdragon 8 Gen 5 e batteria da 6000 mAh in 243 grammi. Pennino e custodia sopno già nella confezione, per un foldable che si caratterizza per il pannello luminoso, l'autonomia ottima per la categoria e le fotocamere coerenti e ben sfruttabili. Il listino è di 1999 euro, ma in vendita si trova già a molto meno
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Google Pixel Watch 5 ha affinato una formula già convincente con hardware più veloce, Gemini offline e nuovi strumenti per sport e benessere. Abbiamo provato la versione LTE da 41 mm, comoda anche di notte e ben proporzionata sui polsi piccoli. Il design resta un punto di forza, ma l'autonomia premia ancora il 45 mm e alcune funzioni AI non sono disponibili in Italia: ecco che cosa cambia rispetto a Watch 4 e quale formato conviene scegliere oggi
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Politica, accademia e industria a confronto su mercato unico, sicurezza e competitività. Nei laboratori di Vimercate, Nokia ha mostrato le nuove generazioni di chip ottici e i test che ogni prodotto deve superare prima di arrivare sul mercato
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-07-2015, 10:26   #1
alien75
Junior Member
 
Iscritto dal: Jun 2012
Messaggi: 3
Software di gestione scheda calcolatrice Z80

Salve, ho realizzato una calcolatrice basata sullo Z80 di cui riporto il link qui a fianco ---> http://creative75.altervista.org/creative/?p=86 . Questo è il mio blog che spiega come ho realizzato tale
scheda.
Il mio problema ora consiste nella realizzazione del software in C.
Ora il problema non è tanto il trasferire il codice eseguibile per Z80 nella EEPROM, bensi quello di riuscire a far
visualizzare come test di prova la cifra "1252" sul display.
Dopo aver scritto, compilato e caricato il codice nella EEPROM si sente il relè dell' accensione che si accende ad intermittenza di 1sec. per poi visualizzare segmenti a caso ad ogni intermittenza.
Non capisco il perchè di questo comportamento.
Riporto di seguito il codice che dovrebbe visualizzare "1252" sul display:

firmware_calc.c:
Codice:
//====================Firmware calcolatrice============================
//21-04-2014    by  Roncolato Fabio ===================================


#include "display.h"

void (*function)() = (void (*)())0xc0;


int main()
{
    display_7seg(12.55);
    while(1){};
    return 0;
}

display.h:
Codice:
//file header dei drivers

void inserisci_cifra(int posizione, char x);
char converti(char cifra);
void visualizza(int posizione, char cifra);
void display_7seg(float numero);

display.c:
Codice:
    //drivers per gestire il display

    //indirizzi dei registri dei display
    //0x4000 display1
    //0x4001 display2
    //0x4002 display3
    //0x4003 display4
    //0x4004 display5
    //0x4005 display6
    //0x4006 display7
    //0x4007 display8


    #include "display.h"
    #include <stdio.h>
    #include <stdlib.h>

    char cifre[8];
    int num, n=0;


    //funzione di visualizzazione cifre
    void visualizza(int posizione, char cifra)
    {
        char numero=converti(cifra);
        inserisci_cifra(posizione, numero);
    }

    //funzione di conversione da BCD a 7 segmenti
    char converti(char cifra)
    {
         if(cifra==0x01)     cifra=0x9f;
         if(cifra==0x02)     cifra=0x25;
         if(cifra==0x03)     cifra=0x0d;
         if(cifra==0x04)     cifra=0x99;
         if(cifra==0x05)     cifra=0x49;
         if(cifra==0x06)     cifra=0x41;
         if(cifra==0x07)     cifra=0x1f;
         if(cifra==0x08)     cifra=0x01;
         if(cifra==0x09)     cifra=0x09;
         if(cifra==0x00)     cifra=0x03;
         if(cifra==0xff)     cifra=0xff;   //spegni tutti i segmenti
         return cifra;
    }

    //funzione di inserimento cifra 7 seg. nella cella display indicata
    void inserisci_cifra(int posizione, char x)
    {
         __asm
             push ix
              add ix,sp
             ld h, 4(ix)
             ld l, 5(ix)
             push af
             ld a, 6(ix)
             ld (hl), a
             pop af
             pop ix
             ret
         __endasm;
    }


    //funzione di visuallizzazione cifre di un float nel display
    void display_7seg(float numero)
    {
         //int num, n=0;
         sprintf(cifre, "%f", numero);
         for(num=0x4000;num<0x4007;num++)
         {
              visualizza(num, cifre[n]);
              n++;
         }
    }

compile.bat:
Codice:
@echo -------------- compilermessages -----------------
@sdasz80 -o crt0calc.o  crt0calc.s
@sdcc -mz80 -c firmware_calc.c
@sdcc -mz80 -c display.c
@rem  sdcc in linker mode, only tell .rel files in this line, no .c, no .asm
@sdcc -mz80  --no-std-crt0  --reserve-regs-iy  --code-loc 0x00F3 --data-loc 0xe000 -o linkresult.ihx crt0calc.rel firmware_calc.rel  display.rel
@echo -------------------------------------------------
@sdldz80 -nf "link.lnk"
@hex2bin 4000 linkresult.ihx
@copy linkresult.bin calc.ROM


Quest' ultimo file è lo script di compilazione che serve ad SDCC (il compilatore che ho usato) per compilare il tutto.
Nessuno mi può dare una mano a capire perchè mi escono segmenti del display a caso invecie di uscire 1252 ?
Grazie in anticipo
alien75 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Motorola razr fold, dalla conchiglia al formato a libro. La recensione Motorola razr fold, dalla conchiglia al formato ...
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente Recensione Google Pixel Watch 5: sembra lo stess...
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi In sella alla Fiido Nomads Pro: e-bike con motor...
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto ASUS Zenbook 14 (UX3480AA): tanta autonomia con ...
Samsung Galaxy bloccati dopo l'aggiornam...
L'UE prolunga il periodo di test del pro...
Offerte Amazon di oggi: e-bike da 616€, ...
La missione cino-europea ESA Smile ha in...
Cisco sulle tracce dell’IA nei malware: ...
Nuovo Codice della strada: stop alla PEC...
Blue Origin Constellation Park: un nuovo...
E-bike da 615€ su Amazon: Bodywel F20PRO...
Windows 11 24H2, stop al supporto per Ho...
Gemini 4 Argon disponibile per tutti: co...
Sony avrebbe chiuso Overdrive, lo store ...
Abbiamo scattato con OPPO Find X10 Pro M...
Fino a 21 miliardi per i chip americani:...
Minions: Apple trasforma i Mac inattivi ...
Microsoft interrompe il supporto a Offic...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:26.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v