<?xml version="1.0"?>
<rss version="2.0"><channel><title><![CDATA[Microprocessori Hw &amp; Sw Latest Topics]]></title><link>https://www.plcforum.it/f/forum/520-microprocessori-hw-amp-sw/</link><description><![CDATA[Microprocessori Hw &amp; Sw Latest Topics]]></description><language>en</language><item><title>Problema scheda timer Autotrol 460i con MSP430F2121</title><link>https://www.plcforum.it/f/topic/266461-problema-scheda-timer-autotrol-460i-con-msp430f2121/</link><description><![CDATA[<p>
	Ho un addolcitore per l’acqua domestica che sulla valvola di marca Autotrol monta un timer digitale modello 460i con circa 8 anni di attività. Il problema che riscontro è che da un momento “x“ della sua vita ad ogni minima mancanza di corrente il timer perde la memoria dell’orologio e il conteggio dei giorni, ma mantiene tutte le impostazioni non soggette a conteggio continuo che vengono programmate alla messa in funzione dell’apparecchio, quindi differenti dalle impostazioni di fabbrica. Da manuale, dove si parla di circuito Con memoria “NOVRAM”, il timer dovrebbe mantenere in memoria tutte le impostazioni in caso di assenza alimentazione, comprese quelle relative all’orologio e al conteggio giorni e infatti ha sempre funzionato così; poi un bel giorno mi sono accorto del guasto. La scheda monta un microcontrollore MSP430F2121 di cui allego datasheet <a href="http://www.ti.com/lit/ds/symlink/msp430f2121.pdf" rel="external nofollow">http://www.ti.com/lit/ds/symlink/msp430f2121.pdf</a> e guida utente <a href="http://www.ti.com/lit/ug/slau144j/slau144j.pdf" rel="external nofollow">http://www.ti.com/lit/ug/slau144j/slau144j.pdf</a> con memoria Flash e ROM, quindi volatile, a meno di non alimentarla con un condensatore e stavo pensando che potrebbe essere proprio quel condensatore che ancora devo individuare il responsabile; non sono presenti batterie tampone. Ovviamente di schema elettrico nemmeno a parlarne. Qualcuno si intende di questi microcontrollori e riesce a sbrogliarmi la matassa? Grazie.
</p>]]></description><guid isPermaLink="false">266461</guid><pubDate>Fri, 03 Apr 2020 21:23:28 +0000</pubDate></item><item><title>Programmatore di eprom ed altri</title><link>https://www.plcforum.it/f/topic/330313-programmatore-di-eprom-ed-altri/</link><description><![CDATA[<p>
	Salve,
</p>

<p>
	qualcuno mi sa indicare un buon lettore/programmatore d eprom PIC ecc and un prezzo non troppo esoso?
</p>

<p>
	Grazie
</p>

<p>
	Enzo
</p>
]]></description><guid isPermaLink="false">330313</guid><pubDate>Sat, 21 Jun 2025 15:39:01 +0000</pubDate></item><item><title>. Pin Out SPC570S</title><link>https://www.plcforum.it/f/topic/328363-pin-out-spc570s/</link><description><![CDATA[<p>
	Salve a tutti ragazzi, ho bisogno di una vostra mano perchè sul datasheet di ST non riesco ad individuare la VSS e VDD di una SPC570S. Sul sito ST e in rete ho trovato dei datasheet ma non capisco perfettamente quale sia quello corretto e per di più non capisco dove sia la VSS e quale VDD utilizzare. Spero possiate aiutarmi a capire, vi allego anche la foto del Micro in questione che magari sbaglio io a cercare e per questo non me ne esco. 
</p>

<p>
	 
</p>

<p>
	 
</p>

<p><a href="https://www.plcforum.it/f/uploads/monthly_2025_03/MicroProgetto1.JPG.df6a35dd5c3616de33a3887bd9476d51.JPG" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="99305" src="https://www.plcforum.it/f/uploads/monthly_2025_03/MicroProgetto1.thumb.JPG.0dc25277f071e70c60c3ce27c7fc35a3.JPG" data-ratio="133.21" width="563" class="ipsImage ipsImage_thumbnailed" alt="Micro Progetto 1.JPG"></a></p>]]></description><guid isPermaLink="false">328363</guid><pubDate>Sun, 23 Mar 2025 11:07:41 +0000</pubDate></item><item><title>Texas Instrument M430F2112</title><link>https://www.plcforum.it/f/topic/328013-texas-instrument-m430f2112/</link><description><![CDATA[<p>
	Buongiorno a tutti, qualcuno di voi sa dirmi qualcosa in più su questo Micro? avrei bisogno di clonarlo in quanto si è guastato ma non trovo informazioni su come sia possibile programmarlo e leggerlo. Spero che qualcuno di voi mi può aiutare. Saluti 
</p>
]]></description><guid isPermaLink="false">328013</guid><pubDate>Mon, 10 Mar 2025 09:41:39 +0000</pubDate></item><item><title>Lettura eeprom 24c32</title><link>https://www.plcforum.it/f/topic/323780-lettura-eeprom-24c32/</link><description><![CDATA[<p>
	Salve a tutti. 
</p>

<p>
	Ho una vecchia autoradio che avevo rimosso per sostituirla con una con il bluetooth. Vorrei leggere la sua eeprom che è una 24c32. Ho preso una schedina con la pinzetta per la lettura delle eeprom senza rimuoverle.  
</p>

<p>
	Quando provo però mi esce il file che vi allego. 
</p>

<p>
	Qualcuno mi potrebbe aiutare? Sto usando un programmino di nome asprogrammer 
</p>

<p>
	 
</p>

<p>
	 
</p>

<p><a href="https://www.plcforum.it/f/uploads/monthly_2024_10/IMG_20241027_234833_596.jpg.cc0d401762934e18d6b34c3a4f7fbb8a.jpg" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="92434" src="https://www.plcforum.it/f/uploads/monthly_2024_10/IMG_20241027_234833_596.thumb.jpg.a4bd62a9f2fd73485e54e1182a6f68b2.jpg" data-ratio="56.3" width="1000" class="ipsImage ipsImage_thumbnailed" alt="IMG_20241027_234833_596.jpg"></a></p>]]></description><guid isPermaLink="false">323780</guid><pubDate>Mon, 28 Oct 2024 08:41:32 +0000</pubDate></item><item><title>PLC Cubloc Comfile</title><link>https://www.plcforum.it/f/topic/323682-plc-cubloc-comfile/</link><description><![CDATA[<p>
	Salve a tutti,
</p>

<p>
	 
</p>

<p>
	sto esplorando (con una proto board rimediata online) il mondo dei PLC Cubloc, anche perché è probabile che debba mettere le mani su alcune installazioni fatte non da me negli scorsi anni.
</p>

<p>
	Stranamente non mi riesce di trovare un distributore non dico italiano ma nemmeno europeo di questo produttore. Non mi sembra che i cubloc siano l'ultimo grido ma pare che siano disponibili quasi solo dal sito americano di Comfile. È una tecnologia che ha qualche futuro, anche solo per la manutenzione dell'esistente o sarà meglio pensare di rivolgersi ad altre soluzioni? Peccato perché sono molto comodi da usare per quello che ho visto.
</p>
]]></description><guid isPermaLink="false">323682</guid><pubDate>Fri, 25 Oct 2024 07:13:55 +0000</pubDate></item><item><title>Stampante HP C4472 d&#xE0; un allarme "carta inceppata" falso</title><link>https://www.plcforum.it/f/topic/322549-stampante-hp-c4472-d%C3%A0-un-allarme-carta-inceppata-falso/</link><description><![CDATA[<p>
	Buongiorno,
</p>

<p>
	ho una stampante HP C4472 multifunzione che è sempre andata bene (a parte le cartucce carissime).
</p>

<p>
	Qualche giorno fa si è presentato questo problema: al comando di stampa, la stampante carica  regolarmente il foglio, che però va oltre il punto dove dovrebbe iniziare la stampa, poi si ferma e dà "carta inceppata". Do OK per proseguire, e il foglio esce intatto dalla stampante. Da qui ripete il ciclo; carica un altro foglio, si ferma oltre il punto di stampa, dà l'errore, ecc
</p>

<p>
	Penso ci sia un sensore di posizione che fermi il trascinamento appena sotto la testina di stampa, e da lì inizi la sequenza di stampa; se questo ipotetico sensore si disattiva, il trascinamento continua fino al blocco.
</p>

<p>
	Apro la stampante per vedere se riesco ad individuare la posizione di un qualche sensore simile , ma non riesco a intravedere nulla di simile. Mi limito quindi a dare una putita generale e rimonto, ma, naturalmente non è cambiato nulla.
</p>

<p>
	Qualcuno di voi ha esperienza su questo tipo di stampanti?
</p>

<p>
	 
</p>

<p>
	PS: qualcuno mi ha suggerito di comprarne un'altra, tanto costa meno la stampante di un paio di giri di cartucce nuove, ma mi rifiuto di entrare nel giro dell'usa e getta (finché possibile), anche se qualche volta sembra più conveniente
</p>
]]></description><guid isPermaLink="false">322549</guid><pubDate>Sat, 14 Sep 2024 13:51:10 +0000</pubDate></item><item><title>file con estensione .psc</title><link>https://www.plcforum.it/f/topic/322972-file-con-estensione-psc/</link><description><![CDATA[<p>
	salve a tutti
</p>

<p>
	Devo programmare delle centraline per stufe a pellet con marchio AWG la quale non esiste più.
</p>

<p>
	Sono però riuscito ad avere i file e mi sono anche comprato un programmatore adatto della Cypress , ora infineon
</p>

<p>
	Il programmatore in questione è il PSOC MINIPROG1. Questo programmatore lavora con il suo software che manipola life HEX.
</p>

<p>
	Il processore target è il CY8C27433-24PVXI.
</p>

<p>
	Il problema sta nel fatto che io ho a disposizione file che hanno come estensione il formato .PSC e non .HEX.
</p>

<p>
	Non sono riuscito a trovare niente in rete che mi possa aiutare.
</p>

<p>
	Qualcuno sa come eseguire una conversione di questo tipo di file?
</p>

<p>
	la scheda nell' immagine è relativa alla scheda base da programmare.
</p>

<p>
	ringrazio in anticipo
</p>

<p>
	 
</p>

<p><a href="https://www.plcforum.it/f/uploads/monthly_2024_09/IMG_20240929_121817.jpg.e7d0a2695903b32582c0811b91e2ce46.jpg" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="90953" src="https://www.plcforum.it/f/uploads/monthly_2024_09/IMG_20240929_121817.thumb.jpg.bd8a813802333bbb6fcefdc23aff3a65.jpg" data-ratio="133.21" width="563" class="ipsImage ipsImage_thumbnailed" alt="IMG_20240929_121817.jpg"></a></p>]]></description><guid isPermaLink="false">322972</guid><pubDate>Sun, 29 Sep 2024 10:21:48 +0000</pubDate></item><item><title>Fine dello Z80...</title><link>https://www.plcforum.it/f/topic/320864-fine-dello-z80/</link><description><![CDATA[<p>
	E' con tristezza che ho letto che il 15 giugno di quest'anno la Zilog ha cessato la produzione del glorioso microprocessore Z80, disegnato come il primo in assoluto dal nostro Federico Faggin...
</p>

<p>
	Dismessi anche i chip di "accompagnamento" dello stesso.
</p>

<p>
	La SGS aveva già smesso la produzione parecchi decenni fa, la Mostek non c'è neppure più. Forse qualche produttore orientale continua a farlo (NEC non credo, altri forse).
</p>

<p>
	Capisco che dopo 48 anni sia giusto andare in pensione. Ma se si considera il parco installato di miliardi di pezzi ancora in funzione (soprattutto in ambito industriale), sinceramente dispiace.
</p>

<p>
	Fu il mio secondo microprocessore, dopo il glorioso (?) TMS9900.
</p>

<p>
	RIP Z80 <span class="ipsEmoji">🥲</span>
</p>
]]></description><guid isPermaLink="false">320864</guid><pubDate>Thu, 11 Jul 2024 14:31:30 +0000</pubDate></item><item><title>Firmware per il microprocessore FAAC</title><link>https://www.plcforum.it/f/topic/316820-firmware-per-il-microprocessore-faac/</link><description><![CDATA[<p>
	Ragazzi  olevo chiedere dove potevo recepire il firmware per il microprocessore  per la centralina di comando FAAC Mod 452 MPS, grazie  mille
</p>
]]></description><guid isPermaLink="false">316820</guid><pubDate>Sat, 03 Feb 2024 12:10:00 +0000</pubDate></item><item><title>Mistero della trasmissione seriale su pic non funziona in nessuna maniera</title><link>https://www.plcforum.it/f/topic/316137-mistero-della-trasmissione-seriale-su-pic-non-funziona-in-nessuna-maniera/</link><description><![CDATA[<p>
	Salve, premetto il pic di riferimento essere PIC16f18857, già funzionante, il problema è l' USART o la Trasmissione perchè riceve bene con l'interrupt alla org 0x0004 va nella nella routine svuoto rc1reg salvo il contenuto in una variabile e poi per resettare il flag rcif lo svuoto altre 2 volte, retfie e si chiude mentre da mainloop poi li leggo il dato arrivato correttamente.
</p>

<p>
	 
</p>

<p>
	Il collegamento è tramite porta seriale pc (terminal: monitor seriale di arduino) grazie ad un adattatore ttl, lo stesso che si usa anche per l'esp-01 per intenderci che si trova a qualche euro su amazon ho connessa la massa tra interfaccia e pic poi sull'ingresso interfaccia ove andava connesso il TX dell'esp01 ho messo invece il TX del pic mentre viceversa dove andava RX ho messo l' RX del pic infatti dal monitor seriale arduino scrivendo la lettera "a" la legge il pic il problema è che non fa il contrario trasmettendo dal pic non stampa mai nulla sul monitor seriale, che ho cambiato anche con un altro monitor seriale scaricato dal web, ho anche provato a connettere la Tx direttamente sull' RX del pic stesso ma nulla pare arriva qualcosa nell' interrupt ma non è lo stesso dato.
</p>

<p>
	 
</p>

<p>
	Prima di postare il codice devo dire di avere provato di tutto di più senza interrupt di TX, con interrupt, leggendo il flag trmt, il flag txif, tutto vano l'interrupt si attiva dopo che nel mainloop viene inviato un carattere ma dall'altra parte pare non arrivare mai nulla! L'enable Txen ho provato ad attivarlo dall'inizio e anche come ora non lasciarlo acceso ma abilitarlo solo quando trasmettere disabilitando anche l'interrupt di ricezione e poi alla fine riabilitandolo ma non cambia nulla!
</p>

<p>
	 
</p>

<p>
	LIST P=PIC16F18857                                           <br />
	#include "p16f18857.inc"        <br />
	                    <br />
	__config _CONFIG1, _RSTOSC_HFINT32 &amp; _FEXTOSC_OFF &amp; _CLKOUTEN_OFF &amp; _CSWEN_OFF &amp; _FCMEN_OFF <br />
	__config _CONFIG2, _MCLRE_OFF &amp; _PWRTE_ON &amp; _LPBOREN_OFF &amp; _BOREN_ON &amp; _BORV_HI &amp; _ZCD_OFF &amp; _PPS1WAY_OFF &amp; _STVREN_ON &amp; _DEBUG_OFF<br />
	__config _CONFIG3, _WDTE_OFF <br />
	__config _CONFIG4, _WRT_OFF &amp; _LVP_OFF <br />
	__config _CONFIG5, _CP_OFF &amp; _CPD_OFF        <br />
	__IDLOCS 0x1234<br />
	        <br />
	CONSTANT CLOCK = 32000000        
</p>

<p>
	CBLOCK  0X20<br />
	    <br />
	                CONTA               <br />
	                CONTA1<br />
	                CONTA2                <br />
	                CONTA3
</p>

<p>
	etc.
</p>

<p>
	etc.
</p>

<p>
	endc
</p>

<p>
	 
</p>

<p>
	AVVIO7<br />
	;**********************************************************************<br />
	; Interrupt handler: Tx, uart<br />
	;**********************************************************************<br />
	        PAGESEL BEEPZ3                         ;BEEP SONORO BREVE DI AVVISO INTERRUPT<br />
	        CALL         BEEPZ3<br />
	                <br />
	        BANKSEL TX1STA                           ;ESSENDO APPENA INVIATO DATO SPENGO MODULO TX<br />
	        BCF           TX1STA,TXEN<br />
	        BANKSEL  PIE3                                ;RIAVVIO INTERRUPT RX<br />
	        BSF            PIE3,RCIE               <br />
	          <br />
	                RETFIE  <br />
	;**********************************************************************            <br />
	AVVIO
</p>

<p>
	                BANKSEL TRISC<br />
	                MOVLW   B'11000000'              ;RX RC7, TX RC6<br />
	                MOVWF   TRISC     <br />
	               
</p>

<p>
	                BANKSEL ANSELC<br />
	                MOVLW   B'00000000'<br />
	                MOVWF   ANSELC        <br />
	        <br />
	                BANKSEL TX1STA<br />
	                BCF     TX1STA, TXEN                   ;SPENTO TX INIZIALMENTE<br />
	                BCF     TXSTA, SYNC_TX1STA     ;MODALITA' ASINCRONA<br />
	                BSF     TX1STA, BRGH                  ;ALTA VELOCITA'<br />
	        <br />
	                BANKSEL RC1STA<br />
	                BSF     RC1STA,SPEN                    ;ABIL. MODULO USART RICEZIONE<br />
	                BSF     RC1STA,CREN<br />
	        <br />
	                BANKSEL BAUD1CON<br />
	                BSF     BAUD1CON,BRG16<br />
	                    <br />
	        ;**********************************************************************************************<br />
	                MOVLW   D'51'            ;51, totale: 306 per avere: 9600 BAUD UART; fosc 11,788MHz<br />
	                MOVWF   SP1BRGL        <br />
	                MOVLW   D'1'              ;255, 9600 BAUD UART<br />
	                MOVWF   SP1BRGH        <br />
	        <br />
	                BANKSEL PIE3<br />
	                BSF     PIE3,TXIE            ;ABIL. trasm. SERIALE INTERRUPT<br />
	                BSF     PIE3,RCIE    <br />
	        <br />
	                BANKSEL LATA<br />
	                CLRF    LATA<br />
	                BANKSEL LATB<br />
	                CLRF    LATB<br />
	                BANKSEL LATC<br />
	                CLRF    LATC<br />
	                BANKSEL PORTA<br />
	                CLRF    PORTA<br />
	                BANKSEL PORTB<br />
	                CLRF    PORTB<br />
	                BANKSEL PORTC<br />
	                CLRF    PORTC        <br />
	        
</p>

<p>
	                
</p>

<p>
	        PAGESEL DELAY           ;DO UN 20 SECONDI ALL'ACCENSIONE DI ASSESTAMENTO PIC<br />
	                CALL    DELAY<br />
	        PAGESEL DELAY<br />
	                CALL    DELAY<br />
	        PAGESEL DELAY<br />
	                CALL    DELAY<br />
	        PAGESEL DELAY<br />
	                CALL    DELAY<br />
	        PAGESEL DELAY<br />
	                CALL    DELAY<br />
	        PAGESEL DELAY<br />
	                CALL    DELAY<br />
	        PAGESEL DELAY<br />
	                CALL    DELAY<br />
	        PAGESEL DELAY<br />
	                CALL    DELAY             <br />
	        <br />
	        BANKSEL INTCON<br />
	        BSF     INTCON, 7        <br />
	    <br />
	        LOOP_GP09<br />
	        NOP<br />
	        nop<br />
	        nop<br />
	        nop<br />
	        <br />
	        PAGESEL DELAY      ;PAUSA ASSESTAMNETO CIRCA 1,5 S<br />
	        CALL        DELAY<br />
	        BANKSEL PIE3                            ;SPENGO INTERRUPT RX ACCENDO MODULO TX<br />
	        BCF           PIE3,RCIE<br />
	        BANKSEL TX1STA<br />
	        BSF           TX1STA,TXEN<br />
	        NOP<br />
	        NOP<br />
	        PAGESEL DELAY<br />
	        CALL         DELAY<br />
	        BANKSEL  TX1REG         <br />
	        MOVLW      "a"        <br />
	        MOVWF     TX1REG<br />
	        NOP<br />
	        NOP        <br />
	        PAGESEL DELAY<br />
	        CALL         DELAY
</p>

<p>
	<br />
	        ;BANKSEL TX1STA<br />
	        ;BCF          TX1STA,TXEN<br />
	        BANKSEL   PIE3                            ;RIACCENDO INTERRUPT RX E SPENGO MODULO TX<br />
	        BCF            PIE3,RCIE<br />
	        PAGESEL LOOP_GP09<br />
	        GOTO       LOOP_GP09
</p>

<p>
	 
</p>

<p>
	END
</p>

<p>
	 
</p>

<p>
	Anche se si può fare in vari modi attendendo che sia impostato il flag TXIF prima di inviare di nuovo, come provato o con interrupt acceso/spento e non funziona, il primo byte dovrebbe inviarlo comunque, ho provato ad inviare fino a 3 byte di seguito nulla arriva mai dall' altra parte, pur attivandosi però l'interrupt di TX che infatti mi da un beep ogni 1,5 secondi di continuo.
</p>

<p>
	Invece riguardo l'hd ho provato che 'è continuità nei collegamenti con resistenze di limitazione della corrente da 4,7 kohm sulle 2 linee e le tensioni misurate sono 5,06 volt lato pic rx e 4,72 volt tx lato pic, a riposo.
</p>

<p>
	 
</p>

<p>
	Qualcuno ha un'idea di cosa potrebbe non andare?? grazie.
</p>
]]></description><guid isPermaLink="false">316137</guid><pubDate>Thu, 11 Jan 2024 13:19:48 +0000</pubDate></item><item><title>salve a tutti,devo programmare l eprom flash mx25l1606e con programmatore willem ma no ci riesco non la riconosce.</title><link>https://www.plcforum.it/f/topic/316163-salve-a-tuttidevo-programmare-l-eprom-flash-mx25l1606e-con-programmatore-willem-ma-no-ci-riesco-non-la-riconosce/</link><description><![CDATA[<p>
	devo programmare l eprom flash mx25l1606e con programmatore willem ma no ci riesco non la riconosce.potete darmi una dritta ?grazie mille
</p>
]]></description><guid isPermaLink="false">316163</guid><pubDate>Fri, 12 Jan 2024 11:01:44 +0000</pubDate></item><item><title>Strano comportamento pin RA4 PIC16F627</title><link>https://www.plcforum.it/f/topic/315229-strano-comportamento-pin-ra4-pic16f627/</link><description><![CDATA[Buongiorno a tutti,<br />
scrivo perché sto incontrando una difficoltà con il pin RA4 usato come uscita del PIC16F627/628<br />
Come saprete, è un pin di I/O che in uscita ha solo una configurazione a Drain aperto. Sto usando questo PIC come convertitore da tastiera AT/PS2 ad ASCII per una replica compatta e migliorata del microcomputer Z80 di Nuova Elettronica che sto costruendo.<br />
Il pin in oggetto, proprio perché Open Drain, lo uso come uscita Reset per lo Z80, ed in particolare l'ho collegato tramite una resistenza da 100 ohm al gruppo elettrolitico-resistenza che dà la temporizzazione per il classico circuito di reset originale, il tutto verso l'ingresso di un 74LS14 (io ho usato un HCT). Sullo stesso punto, fra elettrolitico e resistenza all'ingresso del 74LS14, si collega allo stesso modo anche il pulsante Reset del tastierino-display esadecimale dello Z80.<br />
<br />
Il problema è che il RA4 resta sempre a zero.<br />
Diciamo che se provo il PIC separatamente da tutto il resto, semplicemente con un led+resistenza fra +5V e RA4, vedo funzionare tutto correttamente con un breve impulso sul led quando alimento il circuito e quando premo l'apposita combinazione di tasti sulla tastiera AT<br />
Se però metto io a massa il catodo del led, simulando il pulsante Reset del tastierino esadecimale, poi il led resta sempre acceso<br />
Questo significa che quando all'accensione l'elettrolitico è scarico l'RA4 si trova forzato a zero e così resta, nonostante sia configurato come uscita e sia Open Drain<br />
Come si spiega questo comportamento?<br />
<br />
Il relativo Tris l'ho messo a 0, il CMCON l'ho messo a 7 per rendere tutta la PortA digitale...<br />
Ho anche provato ad aumentare la resistenza da 100 ohm sull'uscita RA4, portandola fino anche a 10K, ma il problema rimane.<br />
L'unico modo che ho trovato per risolvere è stato di sostituire la resistenza da 100 ohm su RA4 con un diodo messo con l'anodo verso l'elettrolitico di reset, catodo su RA4 insieme a una resistenza di pull-up di 47K. La resistenza ci vuole, non basta il diodo, è come se il pin del PIC resti forzato a zero se non sente una tensione presente.<br />
A me sembra strana questa cosa, va in contrasto con il concetto di Open Drain, e poi c'era comunque già la resistenza di carica dell'elettrolitico. Com'è possibile che un pin Open Drain configurato come uscita sia influenzato da un evento esterno come se fosse un ingresso?<br />
<br />
Grazie per le opinioni.<br />
]]></description><guid isPermaLink="false">315229</guid><pubDate>Thu, 07 Dec 2023 16:03:02 +0000</pubDate></item><item><title>Consiglio per principiante programmazione PIC (filtro hardware 15KHz monitor arcade)</title><link>https://www.plcforum.it/f/topic/315192-consiglio-per-principiante-programmazione-pic-filtro-hardware-15khz-monitor-arcade/</link><description><![CDATA[<p>
	Buongiorno, non ho mai programmato un PIC ma vorrei provare per realizzare un progettino che ho trovato online, che non mi è chiaro al 100% e quindi volevo chiedere un parere a chi è più esperto. Sono più che altro un informatico ma ho qualche rudimento di elettronica, ho fatto giusto qualche progettino con arduino in passato, e usato qualche volta il saldatore, quindi abbiate pazienza se chiedo delle banalità <span><span class="ipsEmoji">🙂</span></span>
</p>

<p>
	 
</p>

<p>
	<span>Il mio primo dubbio è cosa comprare come programmatore per un </span>"PIC16F18313-I/P" ho visto che ci sono i PicKit ma ce ne sono vari modelli a prezzi anche molto differenti, cosa mi conviene prendere? sia per programmare quello ma anche se volessi in futuro programmare altri microcontrollori per altri progetti
</p>

<p>
	 
</p>

<p>
	Il progetto che vorrei realizzare è questo: <a href="http://forum.arcadecontrols.com/index.php/topic,160869.msg1733596.html#msg1733596" rel="external nofollow">http://forum.arcadecontrols.com/index.php/topic,160869.msg1733596.html#msg1733596</a>
</p>

<p>
	si tratta di un connettore VGA passante che fa passare il segnale solo se le frequenze orizzontali sono fra 15.5 e 16.2 kHz da utilizzare con particolari monitor arcade che si possono danneggiare se viene inviato per errore un segnale non nel range specificato.
</p>

<p>
	<br />
	la descrizione non è delle migliori ma ho dedotto che il firmware da caricare sul PIC è il .hex riportato qui <a href="https://hackaday.io/project/165634-the-ultimate-vga-to-scart-adapter/details" rel="external nofollow">https://hackaday.io/project/165634-the-ultimate-vga-to-scart-adapter/details</a><span> nella sezione "3 Microcontroller firmware"</span> (si tratta di un progetto hardware diverso ma il codice è il medesimo)
</p>

<p>
	 
</p>

<p>
	una cosa di cui non sono sicuro è l'elenco dei componenti che è riportato solo sul circuito stampato <a href="https://oshpark.com/shared_projects/mMqybOjf" rel="external nofollow">https://oshpark.com/shared_projects/mMqybOjf</a>
</p>

<p>
	mi pare di capire che servano:
</p>

<p>
	1x PIC16F18313-I/P
</p>

<p>
	1x condensatore 10nF SMD
</p>

<p>
	1x condensatore 100nF SMD
</p>

<p>
	1x led rosso
</p>

<p>
	1x led verde
</p>

<p>
	2x resistenze 680R SMD
</p>

<p>
	non mi sembra ci sia altro, o sbaglio?
</p>

<p>
	 
</p>

<p>
	altra cosa che non mi è chiara è come collegare i pin dei connettori VGA, immagino alle piste che si trovano a destra (uscita) e sinistra (entrata) purtroppo non è spiegato chiaramente, mi potete dare qualche dritta?
</p>

<p>
	 
</p>

<p>
	grazie mille a chiunque risponderà
</p>
]]></description><guid isPermaLink="false">315192</guid><pubDate>Wed, 06 Dec 2023 14:44:38 +0000</pubDate></item><item><title>Definire ram  oltre banco 0, pic16f18857</title><link>https://www.plcforum.it/f/topic/314444-definire-ram-oltre-banco-0-pic16f18857/</link><description><![CDATA[<p>
	<font style="background-color:#ffffff;color:#555555;font-size:14px;text-align:left;vertical-align:inherit;">Salve ho un problema definito ed utilizzato leprime 96 variabili ram banco 0 con il comando cblock(pic16f18857) non riesco a definire le altre come devo fare??<span> </span></font><font style="background-color:#ffffff;color:#555555;font-size:14px;text-align:left;vertical-align:inherit;">creare un nuovo cblock?<span> </span></font><font style="background-color:#ffffff;color:#555555;font-size:14px;text-align:left;vertical-align:inherit;">e come passare al banco 1 per utilizzare le altre 80 variabili?</font>
</p>
]]></description><guid isPermaLink="false">314444</guid><pubDate>Sat, 11 Nov 2023 08:51:25 +0000</pubDate></item><item><title>sirena con pic16f84 disturbo audio</title><link>https://www.plcforum.it/f/topic/313526-sirena-con-pic16f84-disturbo-audio/</link><description><![CDATA[<p>
	Premetto che ho iniziato da poco a programmare e per questo uso programmi come Great Cow Basic che permettono di creare il codice in modo visuale.
</p>

<p>
	Ho creato un codice che tramite un loop fa variare la frequenza audio da 700 a 1000 hz.
</p>

<p>
	Il loop funziona e il suono viene riprodotto ma sull'uscita oltre al suono desiderato è presente un ticchettio.
</p>

<p>
	Da cosa dipende? Secondo voi è risolvibile?
</p>

<p>
	codice asm
</p>

<p>
	;Program compiled by Great Cow BASIC (0.99.01 2022-01-27 (Windows 64 bit) : Build 1073) for Microchip MPASM<br />
	;Need .? See the GCBASIC forums at http://sourceforge.net/projects/gcbasic/forums,<br />
	;check the documentation or email w_cholmondeley at users dot sourceforge dot net.
</p>

<p>
	;********************************************************************************
</p>

<p>
	;Set up the assembler options (Chip type, clock source, other bits and pieces)<br />
	 LIST p=16F84, r=DEC<br />
	#include &lt;P16F84.inc&gt;<br />
	 __CONFIG _CP_OFF &amp; _WDTE_OFF &amp; _FOSC_XT
</p>

<p>
	;********************************************************************************
</p>

<p>
	;Set aside memory locations for variables<br />
	DELAYTEMP                        EQU 12<br />
	SND                              EQU 25<br />
	SND_H                            EQU 26<br />
	SYSBYTETEMPX                     EQU 12<br />
	SYSDIVLOOP                       EQU 16<br />
	SYSDIVMULTA                      EQU 19<br />
	SYSDIVMULTA_H                    EQU 20<br />
	SYSDIVMULTB                      EQU 23<br />
	SYSDIVMULTB_H                    EQU 24<br />
	SYSDIVMULTX                      EQU 14<br />
	SYSDIVMULTX_H                    EQU 15<br />
	SYSFORLOOPABSVALUE1              EQU 27<br />
	SYSFORLOOPABSVALUE1_H            EQU 28<br />
	SYSFORLOOPSTEP0                  EQU 29<br />
	SYSFORLOOPSTEP0_H                EQU 30<br />
	SYSTEMP1                         EQU 31<br />
	SYSTEMP1_H                       EQU 32<br />
	SYSTEMP2                         EQU 33<br />
	SYSWAITTEMP10US                  EQU 17<br />
	SYSWORDTEMPA                     EQU 17<br />
	SYSWORDTEMPA_H                   EQU 18<br />
	SYSWORDTEMPB                     EQU 21<br />
	SYSWORDTEMPB_H                   EQU 22<br />
	SYSWORDTEMPX                     EQU 12<br />
	SYSWORDTEMPX_H                   EQU 13<br />
	TONEDURATION                     EQU 34<br />
	TONEDURATION_H                   EQU 35<br />
	TONEFREQUENCY                    EQU 36<br />
	TONEFREQUENCY_H                  EQU 37<br />
	TONELOOP                         EQU 38<br />
	TONELOOP2                        EQU 40<br />
	TONELOOP2_H                      EQU 41<br />
	TONELOOP_H                       EQU 39<br />
	TONEPERIOD                       EQU 42<br />
	TONEPERIOD_H                     EQU 43
</p>

<p>
	;********************************************************************************
</p>

<p>
	;Vectors<br />
	    ORG    0<br />
	    pagesel    BASPROGRAMSTART<br />
	    goto    BASPROGRAMSTART<br />
	    ORG    4<br />
	    retfie
</p>

<p>
	;********************************************************************************
</p>

<p>
	;Start of program memory page 0<br />
	    ORG    5<br />
	BASPROGRAMSTART<br />
	;Call initialisation routines<br />
	    call    INITSYS<br />
	    call    INITSOUND
</p>

<p>
	;Start of the main program<br />
	;Chip Settings<br />
	;Defines (Constants)<br />
	;#define SoundOut PORTA.0<br />
	;Variables<br />
	;Dim snd As word<br />
	START<br />
	;For snd = 700 To 1000 step 20<br />
	    movlw    188<br />
	    movwf    SND<br />
	    movlw    2<br />
	    movwf    SND_H<br />
	SysForLoop1<br />
	;#0 Init SysForLoopStep0<br />
	    movlw    20<br />
	    movwf    SysForLoopStep0<br />
	    clrf    SysForLoopStep0_H<br />
	;Tone snd, 5<br />
	    movf    SND,W<br />
	    movwf    TONEFREQUENCY<br />
	    movf    SND_H,W<br />
	    movwf    TONEFREQUENCY_H<br />
	    movlw    5<br />
	    movwf    TONEDURATION<br />
	    clrf    TONEDURATION_H<br />
	    call    TONE<br />
	;Next<br />
	;Integer negative Step Handler in For-next statement<br />
	    btfss    SYSFORLOOPSTEP0_H,7<br />
	    goto    ELSE1_1<br />
	;Set SysForLoopABsValue to -StepValue#1 <br />
	    comf    SYSFORLOOPSTEP0,W<br />
	    movwf    SysForLoopABsValue1<br />
	    comf    SYSFORLOOPSTEP0_H,W<br />
	    movwf    SysForLoopABsValue1_H<br />
	    incf    SysForLoopABsValue1,F<br />
	    btfsc    STATUS,Z<br />
	    incf    SysForLoopABsValue1_H,F<br />
	;#1n IF ( SND - 1000) } [WORD]SysForLoopABsValue1 THEN <br />
	    movlw    232<br />
	    subwf    SND,W<br />
	    movwf    SysTemp1<br />
	    movf    SND_H,W<br />
	    movwf    SysTemp1_H<br />
	    movlw    3<br />
	    btfss    STATUS,C<br />
	    movlw    3 + 1<br />
	    subwf    SysTemp1_H,F<br />
	    movf    SysTemp1,W<br />
	    movwf    SysWORDTempA<br />
	    movf    SysTemp1_H,W<br />
	    movwf    SysWORDTempA_H<br />
	    movf    SYSFORLOOPABSVALUE1,W<br />
	    movwf    SysWORDTempB<br />
	    movf    SYSFORLOOPABSVALUE1_H,W<br />
	    movwf    SysWORDTempB_H<br />
	    call    SYSCOMPLESSTHAN16<br />
	    comf    SysByteTempX,F<br />
	    btfss    SysByteTempX,0<br />
	    goto    ENDIF2<br />
	;Set LoopVar to LoopVar + StepValue where StepValue is a negative value<br />
	    movf    SysForLoopStep0,W<br />
	    addwf    SND,F<br />
	    movf    SysForLoopStep0_H,W<br />
	    btfsc    STATUS,C<br />
	    incfsz    SysForLoopStep0_H,W<br />
	    addwf    SND_H,F<br />
	    goto    SysForLoop1<br />
	;END IF<br />
	ENDIF2<br />
	    goto    ENDIF1<br />
	ELSE1_1<br />
	;Integer positive Step Handler in For-next statement<br />
	;#1p IF ([WORD]1000 - [WORD]SND) } [WORD]SysForLoopStep0 THEN<br />
	    movf    SND,W<br />
	    sublw    232<br />
	    movwf    SysTemp1<br />
	    movf    SND_H,W<br />
	    btfss    STATUS,C<br />
	    incfsz    SND_H,W<br />
	    sublw    3<br />
	    movwf    SysTemp1_H<br />
	    movf    SysTemp1,W<br />
	    movwf    SysWORDTempA<br />
	    movf    SysTemp1_H,W<br />
	    movwf    SysWORDTempA_H<br />
	    movf    SYSFORLOOPSTEP0,W<br />
	    movwf    SysWORDTempB<br />
	    movf    SYSFORLOOPSTEP0_H,W<br />
	    movwf    SysWORDTempB_H<br />
	    call    SYSCOMPLESSTHAN16<br />
	    comf    SysByteTempX,F<br />
	    btfss    SysByteTempX,0<br />
	    goto    ENDIF3<br />
	;Set LoopVar to LoopVar + StepValue where StepValue is a positive value<br />
	    movf    SysForLoopStep0,W<br />
	    addwf    SND,F<br />
	    movf    SysForLoopStep0_H,W<br />
	    btfsc    STATUS,C<br />
	    incfsz    SysForLoopStep0_H,W<br />
	    addwf    SND_H,F<br />
	    goto    SysForLoop1<br />
	;END IF<br />
	ENDIF3<br />
	;END IF<br />
	ENDIF1<br />
	SysForLoopEnd1<br />
	;Goto start<br />
	    goto    START<br />
	BASPROGRAMEND<br />
	    sleep<br />
	    goto    BASPROGRAMEND
</p>

<p>
	;********************************************************************************
</p>

<p>
	Delay_10US<br />
	D10US_START<br />
	    movlw    2<br />
	    movwf    DELAYTEMP<br />
	DelayUS0<br />
	    decfsz    DELAYTEMP,F<br />
	    goto    DelayUS0<br />
	    decfsz    SysWaitTemp10US, F<br />
	    goto    D10US_START<br />
	    return
</p>

<p>
	;********************************************************************************
</p>

<p>
	;Source: sound.h (60)<br />
	INITSOUND<br />
	;dir SoundOut out<br />
	    banksel    TRISA<br />
	    bcf    TRISA,0<br />
	    banksel    STATUS<br />
	    return
</p>

<p>
	;********************************************************************************
</p>

<p>
	;Source: system.h (156)<br />
	INITSYS<br />
	;asm showdebug _For_selected_frequency_-_the_external_oscillator_has_been_selected_by_compiler ChipMHz<br />
	;asm showdebug _Complete_the_chip_setup_of_BSR,ADCs,ANSEL_and_other_key_setup_registers_or_register_bits<br />
	;<br />
	;'Turn off all ports<br />
	;PORTA = 0<br />
	    clrf    PORTA<br />
	;PORTB = 0<br />
	    clrf    PORTB<br />
	    return
</p>

<p>
	;********************************************************************************
</p>

<p>
	;Source: system.h (3023)<br />
	SYSCOMPEQUAL16<br />
	;dim SysWordTempA as word<br />
	;dim SysWordTempB as word<br />
	;dim SysByteTempX as byte<br />
	;clrf SysByteTempX<br />
	    clrf    SYSBYTETEMPX<br />
	;Test low, exit if false<br />
	;movf SysWordTempA, W<br />
	    movf    SYSWORDTEMPA, W<br />
	;subwf SysWordTempB, W<br />
	    subwf    SYSWORDTEMPB, W<br />
	;btfss STATUS, Z<br />
	    btfss    STATUS, Z<br />
	;return<br />
	    return<br />
	;Test high, exit if false<br />
	;movf SysWordTempA_H, W<br />
	    movf    SYSWORDTEMPA_H, W<br />
	;subwf SysWordTempB_H, W<br />
	    subwf    SYSWORDTEMPB_H, W<br />
	;btfss STATUS, Z<br />
	    btfss    STATUS, Z<br />
	;return<br />
	    return<br />
	;comf SysByteTempX,F<br />
	    comf    SYSBYTETEMPX,F<br />
	    return
</p>

<p>
	;********************************************************************************
</p>

<p>
	;Source: system.h (3332)<br />
	SYSCOMPLESSTHAN16<br />
	;dim SysWordTempA as word<br />
	;dim SysWordTempB as word<br />
	;dim SysByteTempX as byte<br />
	;clrf SysByteTempX<br />
	    clrf    SYSBYTETEMPX<br />
	;Test High, exit if more<br />
	;movf SysWordTempA_H,W<br />
	    movf    SYSWORDTEMPA_H,W<br />
	;subwf SysWordTempB_H,W<br />
	    subwf    SYSWORDTEMPB_H,W<br />
	;btfss STATUS,C<br />
	    btfss    STATUS,C<br />
	;return<br />
	    return<br />
	;Test high, exit true if less<br />
	;movf SysWordTempB_H,W<br />
	    movf    SYSWORDTEMPB_H,W<br />
	;subwf SysWordTempA_H,W<br />
	    subwf    SYSWORDTEMPA_H,W<br />
	;btfss STATUS,C<br />
	    btfss    STATUS,C<br />
	;goto SCLT16True<br />
	    goto    SCLT16TRUE<br />
	;Test Low, exit if more or equal<br />
	;movf SysWordTempB,W<br />
	    movf    SYSWORDTEMPB,W<br />
	;subwf SysWordTempA,W<br />
	    subwf    SYSWORDTEMPA,W<br />
	;btfsc STATUS,C<br />
	    btfsc    STATUS,C<br />
	;return<br />
	    return<br />
	SCLT16TRUE<br />
	;comf SysByteTempX,F<br />
	    comf    SYSBYTETEMPX,F<br />
	    return
</p>

<p>
	;********************************************************************************
</p>

<p>
	;Source: system.h (2780)<br />
	SYSDIVSUB16<br />
	;dim SysWordTempA as word<br />
	;dim SysWordTempB as word<br />
	;dim SysWordTempX as word<br />
	;dim SysDivMultA as word<br />
	;dim SysDivMultB as word<br />
	;dim SysDivMultX as word<br />
	;SysDivMultA = SysWordTempA<br />
	    movf    SYSWORDTEMPA,W<br />
	    movwf    SYSDIVMULTA<br />
	    movf    SYSWORDTEMPA_H,W<br />
	    movwf    SYSDIVMULTA_H<br />
	;SysDivMultB = SysWordTempB<br />
	    movf    SYSWORDTEMPB,W<br />
	    movwf    SYSDIVMULTB<br />
	    movf    SYSWORDTEMPB_H,W<br />
	    movwf    SYSDIVMULTB_H<br />
	;SysDivMultX = 0<br />
	    clrf    SYSDIVMULTX<br />
	    clrf    SYSDIVMULTX_H<br />
	;Avoid division by zero<br />
	;if SysDivMultB = 0 then<br />
	    movf    SYSDIVMULTB,W<br />
	    movwf    SysWORDTempA<br />
	    movf    SYSDIVMULTB_H,W<br />
	    movwf    SysWORDTempA_H<br />
	    clrf    SysWORDTempB<br />
	    clrf    SysWORDTempB_H<br />
	    call    SYSCOMPEQUAL16<br />
	    btfss    SysByteTempX,0<br />
	    goto    ENDIF12<br />
	;SysWordTempA = 0<br />
	    clrf    SYSWORDTEMPA<br />
	    clrf    SYSWORDTEMPA_H<br />
	;exit sub<br />
	    return<br />
	;end if<br />
	ENDIF12<br />
	;Main calc routine<br />
	;SysDivLoop = 16<br />
	    movlw    16<br />
	    movwf    SYSDIVLOOP<br />
	SYSDIV16START<br />
	;set C off<br />
	    bcf    STATUS,C<br />
	;Rotate SysDivMultA Left<br />
	    rlf    SYSDIVMULTA,F<br />
	    rlf    SYSDIVMULTA_H,F<br />
	;Rotate SysDivMultX Left<br />
	    rlf    SYSDIVMULTX,F<br />
	    rlf    SYSDIVMULTX_H,F<br />
	;SysDivMultX = SysDivMultX - SysDivMultB<br />
	    movf    SYSDIVMULTB,W<br />
	    subwf    SYSDIVMULTX,F<br />
	    movf    SYSDIVMULTB_H,W<br />
	    btfss    STATUS,C<br />
	    incfsz    SYSDIVMULTB_H,W<br />
	    subwf    SYSDIVMULTX_H,F<br />
	;Set SysDivMultA.0 On<br />
	    bsf    SYSDIVMULTA,0<br />
	;If C Off Then<br />
	    btfsc    STATUS,C<br />
	    goto    ENDIF13<br />
	;Set SysDivMultA.0 Off<br />
	    bcf    SYSDIVMULTA,0<br />
	;SysDivMultX = SysDivMultX + SysDivMultB<br />
	    movf    SYSDIVMULTB,W<br />
	    addwf    SYSDIVMULTX,F<br />
	    movf    SYSDIVMULTB_H,W<br />
	    btfsc    STATUS,C<br />
	    incfsz    SYSDIVMULTB_H,W<br />
	    addwf    SYSDIVMULTX_H,F<br />
	;End If<br />
	ENDIF13<br />
	;decfsz SysDivLoop, F<br />
	    decfsz    SYSDIVLOOP, F<br />
	;goto SysDiv16Start<br />
	    goto    SYSDIV16START<br />
	;SysWordTempA = SysDivMultA<br />
	    movf    SYSDIVMULTA,W<br />
	    movwf    SYSWORDTEMPA<br />
	    movf    SYSDIVMULTA_H,W<br />
	    movwf    SYSWORDTEMPA_H<br />
	;SysWordTempX = SysDivMultX<br />
	    movf    SYSDIVMULTX,W<br />
	    movwf    SYSWORDTEMPX<br />
	    movf    SYSDIVMULTX_H,W<br />
	    movwf    SYSWORDTEMPX_H<br />
	    return
</p>

<p>
	;********************************************************************************
</p>

<p>
	;Source: sound.h (34)<br />
	TONE<br />
	;dim ToneLoop as word<br />
	;dim ToneLoop2 as word<br />
	;dim TonePeriod as Word<br />
	;If ToneFrequency = 0 Then Exit Sub<br />
	    movf    TONEFREQUENCY,W<br />
	    movwf    SysWORDTempA<br />
	    movf    TONEFREQUENCY_H,W<br />
	    movwf    SysWORDTempA_H<br />
	    clrf    SysWORDTempB<br />
	    clrf    SysWORDTempB_H<br />
	    call    SYSCOMPEQUAL16<br />
	    btfsc    SysByteTempX,0<br />
	    return<br />
	;TonePeriod = 50000 / ToneFrequency<br />
	    movlw    80<br />
	    movwf    SysWORDTempA<br />
	    movlw    195<br />
	    movwf    SysWORDTempA_H<br />
	    movf    TONEFREQUENCY,W<br />
	    movwf    SysWORDTempB<br />
	    movf    TONEFREQUENCY_H,W<br />
	    movwf    SysWORDTempB_H<br />
	    call    SYSDIVSUB16<br />
	    movf    SysWORDTempA,W<br />
	    movwf    TONEPERIOD<br />
	    movf    SysWORDTempA_H,W<br />
	    movwf    TONEPERIOD_H<br />
	;ToneFrequency = ToneFrequency / 100<br />
	    movf    TONEFREQUENCY,W<br />
	    movwf    SysWORDTempA<br />
	    movf    TONEFREQUENCY_H,W<br />
	    movwf    SysWORDTempA_H<br />
	    movlw    100<br />
	    movwf    SysWORDTempB<br />
	    clrf    SysWORDTempB_H<br />
	    call    SYSDIVSUB16<br />
	    movf    SysWORDTempA,W<br />
	    movwf    TONEFREQUENCY<br />
	    movf    SysWORDTempA_H,W<br />
	    movwf    TONEFREQUENCY_H<br />
	;For ToneLoop = 1 to ToneDuration<br />
	    movlw    1<br />
	    movwf    TONELOOP<br />
	    clrf    TONELOOP_H<br />
	SysForLoop2<br />
	;For ToneLoop2 = 1 to ToneFrequency<br />
	    movlw    1<br />
	    movwf    TONELOOP2<br />
	    clrf    TONELOOP2_H<br />
	SysForLoop3<br />
	;Set SoundOut ON<br />
	    bsf    PORTA,0<br />
	;SysToneDelay<br />
	    movf    TONEPERIOD,W<br />
	    movwf    SysWaitTemp10US<br />
	    call    Delay_10US<br />
	;Set SoundOut OFF<br />
	    bcf    PORTA,0<br />
	;SysToneDelay<br />
	    movf    TONEPERIOD,W<br />
	    movwf    SysWaitTemp10US<br />
	    call    Delay_10US<br />
	;Next<br />
	;#4p Positive value Step Handler in For-next statement<br />
	    movf    TONELOOP2,W<br />
	    subwf    TONEFREQUENCY,W<br />
	    movwf    SysTemp1<br />
	    movf    TONEFREQUENCY_H,W<br />
	    movwf    SysTemp1_H<br />
	    movf    TONELOOP2_H,W<br />
	    btfss    STATUS,C<br />
	    incfsz    TONELOOP2_H,W<br />
	    subwf    SysTemp1_H,F<br />
	    movf    SysTemp1,W<br />
	    movwf    SysWORDTempA<br />
	    movf    SysTemp1_H,W<br />
	    movwf    SysWORDTempA_H<br />
	    clrf    SysWORDTempB<br />
	    clrf    SysWORDTempB_H<br />
	    call    SYSCOMPEQUAL16<br />
	    comf    SysByteTempX,F<br />
	    btfss    SysByteTempX,0<br />
	    goto    ENDIF8<br />
	;Set LoopVar to LoopVar + StepValue where StepValue is a positive value<br />
	    incf    TONELOOP2,F<br />
	    btfsc    STATUS,Z<br />
	    incf    TONELOOP2_H,F<br />
	    goto    SysForLoop3<br />
	;END IF<br />
	ENDIF8<br />
	SysForLoopEnd3<br />
	;Next<br />
	;#4p Positive value Step Handler in For-next statement<br />
	    movf    TONELOOP,W<br />
	    subwf    TONEDURATION,W<br />
	    movwf    SysTemp1<br />
	    movf    TONEDURATION_H,W<br />
	    movwf    SysTemp1_H<br />
	    movf    TONELOOP_H,W<br />
	    btfss    STATUS,C<br />
	    incfsz    TONELOOP_H,W<br />
	    subwf    SysTemp1_H,F<br />
	    movf    SysTemp1,W<br />
	    movwf    SysWORDTempA<br />
	    movf    SysTemp1_H,W<br />
	    movwf    SysWORDTempA_H<br />
	    clrf    SysWORDTempB<br />
	    clrf    SysWORDTempB_H<br />
	    call    SYSCOMPEQUAL16<br />
	    comf    SysByteTempX,F<br />
	    btfss    SysByteTempX,0<br />
	    goto    ENDIF10<br />
	;Set LoopVar to LoopVar + StepValue where StepValue is a positive value<br />
	    incf    TONELOOP,F<br />
	    btfsc    STATUS,Z<br />
	    incf    TONELOOP_H,F<br />
	    goto    SysForLoop2<br />
	;END IF<br />
	ENDIF10<br />
	SysForLoopEnd2<br />
	    return
</p>

<p>
	;********************************************************************************
</p>

<p>
	<br />
	 END<br />
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">313526</guid><pubDate>Sun, 08 Oct 2023 10:39:15 +0000</pubDate></item><item><title>Programmare S87C752-1N28</title><link>https://www.plcforum.it/f/topic/311293-programmare-s87c752-1n28/</link><description><![CDATA[<p>
	Ciao a tutti,
</p>

<p>
	Ho una eprom S87C752-1N28 che devo programmare, ho il sorgente, ma in azienda dopo un trasloco non troviamo più il programmatore. Cosa potrei utilizzare ? Considerate che è roba vecchia, che facciamo per un cliente a cui ogni tanto gli si rompono le eprom, quindi vorrei acquistare qualcosa di economico.
</p>

<p>
	 
</p>

<p>
	Grazie mille a tutti
</p>
]]></description><guid isPermaLink="false">311293</guid><pubDate>Thu, 06 Jul 2023 08:45:23 +0000</pubDate></item><item><title>Eeprom 93C66 con Pickit3 collegamento pin</title><link>https://www.plcforum.it/f/topic/311057-eeprom-93c66-con-pickit3-collegamento-pin/</link><description><![CDATA[<p>
	Salve, ho questo programmatore Pickit 3 che ho utilizzato qualche anno fa per programmare un pic 12F629, ho utilizzato il programma MPLAB x ipe v.5.3
</p>

<p>
	A distanza di anni, l'ho ritirato fuori, perche' ho necessita di "leggere" il contenuto della eeprom 93C66, effettuare una modifica sul programma e andarlo a "scrivere" su delle nuove 93C66.
</p>

<p>
	Ho visto che, sia il programmatore che il programma MPLAB, accettano questa eeprom, (è nella lista) ma avendo i pin diversi,chiedo un'aiuto per capire quali pin vanno utilizzati,vista la diversa descrizione del 93C66 che non corrisponde ne a quanto indicato dal pickit3 ne ai pin del 12F629, metto alcune immagini a rendere l'idea
</p>

<p>
	Grazie
</p>

<p>
	 
</p>

<p><a href="https://www.plcforum.it/f/uploads/monthly_2023_06/Immagine.jpg.73e092894a2e6038c51aa24ba82e75bc.jpg" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="73307" src="https://www.plcforum.it/f/uploads/monthly_2023_06/Immagine.jpg.73e092894a2e6038c51aa24ba82e75bc.jpg" data-ratio="75.48" width="787" class="ipsImage ipsImage_thumbnailed" alt="Immagine.jpg"></a></p>]]></description><guid isPermaLink="false">311057</guid><pubDate>Mon, 26 Jun 2023 09:12:22 +0000</pubDate></item><item><title>Fototrappola con blocco SIM.</title><link>https://www.plcforum.it/f/topic/309316-fototrappola-con-blocco-sim/</link><description><![CDATA[<p>
	Buongiorno, ho una fototrappola spypoint micro 4g che ha il blocco SIM, ovvero può funzionare solamente con la sua SIM originaria, vorrei poterla sbloccare per utilizzarla con un'altra SIM. Spiego, la fototrappola non ha porte ne display per la programmazione ma un lettore di schede SD dove memorizza le immagini scattate e da dove poter aggiornare il firmware, quindi lo sblocco della SIM è gestito da firmware, mi confermate? La cosa strana è che ho provato SIM Vodafone, Wind, Tim e pure un altra inserita in un altra fototrappola identica e non funzionano, inserendo SIM iliad la fototrappola funziona..
</p>

<p>
	Qualcuno sa darmi una mano/consigli?  
</p>

<p>
	Grazie
</p>
]]></description><guid isPermaLink="false">309316</guid><pubDate>Tue, 09 May 2023 13:12:15 +0000</pubDate></item><item><title>Pic16C55A protetto si riesce a leggere?</title><link>https://www.plcforum.it/f/topic/309606-pic16c55a-protetto-si-riesce-a-leggere/</link><description><![CDATA[<p>
	Mi è saltato il pin RB6 del pic16c55a di conseguenza non funziona la discesa della bascula (il pin e in corto verso massa) vi chiedo esiste qualche artificio per leggerlo che è protetto?
</p>

<p>
	vi ringrazio Beppe
</p>
]]></description><guid isPermaLink="false">309606</guid><pubDate>Fri, 19 May 2023 20:41:22 +0000</pubDate></item><item><title>problemi con atmega 64</title><link>https://www.plcforum.it/f/topic/308943-problemi-con-atmega-64/</link><description><![CDATA[<p>
	Posso accodarmi?......
</p>

<p>
	Buongiorno,Spero che qualcuno possa aiutarmi , sono settimane che sbatto la testa con un Atmega64 ho costruito 4/ 5 tipi di programmatori in piu posseggo un ALL11C ma non risolvo il problema,
</p>

<p>
	oggi ho letto ( poi faro' una prova)  che i pin di programmazione non sono MISI E MOSI tradizionali ma i pin PE0 = MOSI   e PE1 = MISO .
</p>

<p>
	Se qualcuno ci e' gia' passato vi ringrazio per una dritta ... ultimo hardware  che utilizzo e per ponyprog  seleziono  serial/ SI Prog  API /  oppure   serial / SI Prog I/O
</p>

<p>
	GRAZIE ANTICIPATAMENTE
</p>

<p>
	FRANCESCO
</p>
]]></description><guid isPermaLink="false">308943</guid><pubDate>Wed, 26 Apr 2023 07:28:52 +0000</pubDate></item><item><title>Display nextion conversione file tft in hmi</title><link>https://www.plcforum.it/f/topic/308861-display-nextion-conversione-file-tft-in-hmi/</link><description><![CDATA[<p>
	Ciao a tutti del forum 
</p>

<p>
	Come da titolo sto cercando un software per la conversione di file TFT in un file HMI per display nextion  , cercando in rete praticamente non ho trovato nulla , qualcuno sa se esiste qualcosa o se è fattibile fare questa conversione ?
</p>

<p>
	Grazie a tutti  
</p>
]]></description><guid isPermaLink="false">308861</guid><pubDate>Sun, 23 Apr 2023 10:48:51 +0000</pubDate></item><item><title>ripetere il ciclo una sola volta pic 16f629</title><link>https://www.plcforum.it/f/topic/308546-ripetere-il-ciclo-una-sola-volta-pic-16f629/</link><description><![CDATA[<p>
	ciao ragazzi
</p>

<p>
	devo fare una cosa banalissima utilizzando un pic 16f629 e cioè attivare in sequenza 2 uscite dopo un certo tempo per un certo tempo all'accensione del pic ( tempo&gt;out 1 on&gt;tempo&gt;out 1 off&gt;tempo&gt;out 2 on&gt;tempo&gt;out 2 off ).
</p>

<p>
	fino ad ora per fare quei 4 progetti dove ho utilizzato i pic ho usato parsic ma ora visto che parsic non supporta quel tipo di pic sto provando a utilizzare mplab-x-ide.
</p>

<p>
	ho rispolverato le mie poche conoscenze di C (troppo arrugginite) e ho partorito questo codice 
</p>

<p>
	 
</p>

<p>
	#include &lt;stdio.h&gt;<br />
	#include &lt;stdlib.h&gt;<br />
	#include &lt;xc.h&gt;<br />
	#include &lt;time.h&gt;<br />
	#define _XTAL_FREQ 4000000<br />
	/*<br />
	 * <br />
	 */<br />
	#define _XTAL_FREQ 4000000<br />
	#define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))
</p>

<p>
	<br />
	#pragma config FOSC = INTRCIO <br />
	#pragma config WDTE = OFF      <br />
	#pragma config PWRTE = ON     
</p>

<p>
	#pragma config MCLRE = OFF<br />
	#pragma config BOREN = OFF<br />
	#pragma config CP = OFF        <br />
	#pragma config CPD = OFF        
</p>

<p>
	void main() {
</p>

<p>
	    TRISIO = 0;<br />
	    GPIO = 0;<br />
	    int i = 0;<br />
	    while (i &lt; 5) {<br />
	        __delay_ms(2500);<br />
	        GP0 = 1;<br />
	        __delay_ms(500);<br />
	        GP0 = 0;<br />
	        __delay_ms(500);<br />
	        GP1 = 1;<br />
	        __delay_ms(500);<br />
	        GP1 = 0;<br />
	        i = i + 1;
</p>

<p>
	    }<br />
	}
</p>

<p>
	 
</p>

<p>
	il ciclo funziona ma non si interrompe mai sembra che la variabile "i" che dovrebbe inerrompere il "while" una volta arrivata a 5 o non si incrementa mai o viene azzerata.
</p>

<p>
	in questo esempio il ciclo dovrebbe ripetersi 5 volte e poi fermarsi solo per prova, a me interesserebbe ripeterlo una volta sola all'accensione del circuito.
</p>

<p>
	 
</p>

<p>
	grazie per l'aiuto
</p>
]]></description><guid isPermaLink="false">308546</guid><pubDate>Tue, 11 Apr 2023 10:17:03 +0000</pubDate></item><item><title>PROGRAMMARE ATMEGA</title><link>https://www.plcforum.it/f/topic/196490-programmare-atmega/</link><description><![CDATA[
<p>
	Salve,
</p>

<p>
	Qualcuno può aiutarmi gentilmente vorrei sapere come leggere e programmare atmega64,ho visto che vendono programmatori usb con cavo idc a 10pin,praticamente ho una scheda elettronica con connettore idc a 10 pin,quindi posso collegare il programmatore direttamente sul connettore della scheda per riprogrammare atmega64?(o devo saldare i fili direttamente sull'aumento?)che programma posso usare? Grazie anticipatamente
</p>
]]></description><guid isPermaLink="false">196490</guid><pubDate>Sat, 05 Mar 2016 07:34:27 +0000</pubDate></item><item><title>Quectel EC21-E FA</title><link>https://www.plcforum.it/f/topic/308616-quectel-ec21-e-fa/</link><description><![CDATA[<p>
	Buongiorno,
</p>

<p>
	Ho una fototrappola con trasmissione delle foto scattate in 4g che monta questo modulo, ovvero il quectel EC21-E fa, il mio problema è che con una SIM iliad la fototrappola si connette e funziona, mentre con altre SIM no. Io avrei la necessità di sostituire la SIM con una Vodafone...la fototrappola in questione non ha un display nel quale verificarne le impostazioni e quant'altro..e nemmeno una porta seriale alla quale connettermi. Come potrei fare per verificarne ed eventualmente modificarne le impostazioni di questo quectel? 
</p>

<p>
	Grazie!
</p>
]]></description><guid isPermaLink="false">308616</guid><pubDate>Thu, 13 Apr 2023 13:24:28 +0000</pubDate></item></channel></rss>
