Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Buonasera, volevo chiedervi un aiuto su un programma in C, allego il file e il codice.
Non riesco ad arrivare alla soluzione, volevo chiedervi se qualcuno di voi potrebbe darmi
qualche consiglio. E' un test che devo consegnare venerdi mattina, per un'azienda.
Codice sorgente - presumibilmente C++
#include <stdio.h>
#include <iostream> //system pause
typedefstruct{
char DIO_PA_8[8];// [8] perchè la piu lunga è STD_HIGH
char DIO_PA_9[8];
}
dio_level_t;
void Start_Display(int n)
{
switch(n)
{
case 0:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_HIGH);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_LOW);
break;
case 1:
Dio_WriteChannel(DIO_PA_0, STD_LOW);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_LOW);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_LOW);
Dio_WriteChannel(DIO_PA_6, STD_LOW);
break;
case 2:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_LOW);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_HIGH);
Dio_WriteChannel(DIO_PA_5, STD_LOW);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 3:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_LOW);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 4:
Dio_WriteChannel(DIO_PA_0, STD_LOW);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_LOW);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 5:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_LOW);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 6:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_LOW);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_HIGH);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 7:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_LOW);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_LOW);
Dio_WriteChannel(DIO_PA_6, STD_LOW);
break;
case 8:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_HIGH);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 9:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
}
};
int main()
{
dio_level_t Dio_ReadChannel();
static uint32_t delayMs=1000;// che significa static uint32_t??????
Se non spieghi cosa dovrebbe fare il programma e cosa non va, come si fa a rispondere?
Scusa poi, ma se l'azienda ti chiede qualcosa e tu non hai il forum per aiutarti, cosa fai?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
Mi servirebbe un'idea su come implementare un algoritmo che:
riceva in ingresso questa stringa
char inputSeq[] = ("3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489");
e stampi su 6 display a 7 segmenti i valori in forma,sequenziale; tipo:
3
3.
3.1
3.14
3.141
3.1415
3.14159 una volta accessi tutti e sei i display, inizia lo shift
141592 ecc
Al post precedente avevo caricato l'allegato, ma non appare.
Se vuoi puoi dare alla azienda i miei contatti, io so farlo.
Pagano bene?
Bella risposta anche se un po' cattivella ... :-)
In effetti, se non sai fare questo semplice codice, mi dispiace ma non credo potrai restarci molto in azienda.
A meno che questo non sia un semplice esercizio scolastico che tu vuoi farti risolvere dal forum ... potresti anche dirlo senza problemi ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
sono riuscito ad implementarlo, però ho problemi a far accendere la virgola.
Come ho fatto adesso è valido solo per numeri senza virgola e a me serve verificare il funzionamento su numeri con virgola.
Codice sorgente - presumibilmente C++
#include <stdio.h>
#include <iostream> //system pause
typedefstruct{
char DIO_PA_8[8];// [8] perchè la piu lunga è STD_HIGH
char DIO_PA_9[8];
}
dio_level_t;
void Start_Display(int n)
{
switch(n)
{
case 0:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_HIGH);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_LOW);
break;
case 1:
Dio_WriteChannel(DIO_PA_0, STD_LOW);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_LOW);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_LOW);
Dio_WriteChannel(DIO_PA_6, STD_LOW);
break;
case 2:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_LOW);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_HIGH);
Dio_WriteChannel(DIO_PA_5, STD_LOW);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 3:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_LOW);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 4:
Dio_WriteChannel(DIO_PA_0, STD_LOW);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_LOW);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 5:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_LOW);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 6:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_LOW);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_HIGH);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 7:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_LOW);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_LOW);
Dio_WriteChannel(DIO_PA_6, STD_LOW);
break;
case 8:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_HIGH);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
case 9:
Dio_WriteChannel(DIO_PA_0, STD_HIGH);
Dio_WriteChannel(DIO_PA_1, STD_HIGH);
Dio_WriteChannel(DIO_PA_2, STD_HIGH);
Dio_WriteChannel(DIO_PA_3, STD_HIGH);
Dio_WriteChannel(DIO_PA_4, STD_LOW);
Dio_WriteChannel(DIO_PA_5, STD_HIGH);
Dio_WriteChannel(DIO_PA_6, STD_HIGH);
break;
}
};
int main()
{
dio_level_t Dio_ReadChannel();
static uint32_t delayMs=1000;// che significa static uint32_t??????
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
Mannaggia non conosco VHDL. Allora ti aiuto, ma metti una parola buona su di me.
Codice sorgente - presumibilmente C/C++
static uint32_t delayMs= 1000; // che significa static uint32_t??????
uint32_t bedeutet, dass delayMs eine 32-bit unvorzeichene Zahl ist. Auf eine 32-bit Architektur ist es dasselbe wie unsigned int.
Static heißt, dass die Variable während der Ausführung in einer unverändbaren Addresse steht. In diesem Zusammenhang ist static ganz unnötig.